c - 控制台中的字符串输出发生了什么
问题描述
我对C很陌生。
请您指出我的代码的哪一部分(函数、一些运算符、错误的字符串声明等)在控制台中产生以下输出:
我希望有OmelianLevkovych。
以下代码片段:
#include <stdio.h>
#include <stdlib.h>
const char* GetFullName(char firstName[], char lastName[])
{
return strcat(firstName, lastName);
}
int main()
{
char firstName[] = "Omelian";
char lastName[] = "Levkovych";
char* fullName;
fullName = GetFullName(firstName, lastName);
printf("%s", fullName);
return 0;
}
我正在使用 Code.Block IDE 20.03(默认 hello-world 模板项目)。
解决方案
您没有在字符串 firstname 中分配足够的空间。Strcat 将 lastname 附加到 firstname 字符串并返回指向 firstname 字符串的指针。
快速修复将是:
char firstName[30] = "Omelian";
推荐阅读
- python - Python - SQL 查询不会返回字符“Æ”、“Ø”和“Å”
- javascript - 尽管路径正确,但在 Asp.NET 中找不到资源?
- angular - 使用参数定义路由时出现角度路由问题
- doxygen - 另一个 doxygen 什么都不产生
- mysql - 我检查了每一条信息,但我仍然没有找到我的目标。我一直在努力提高,但在这种情况下我根本做不到
- oracle - 将值添加到服务器启动参数 oracle weblogic
- google-app-engine - 将 AppEngine 中的传入请求路由到不同版本
- python - 如何使用 GIT 配置 RFlinter 以在每次提交时自动对机器人文件运行 linter 检查
- sql - EF Core 3.1 - 数据库优先和继承
- laravel - 具有许多内部连接的最慢查询使其更快 postgres