首页 > 解决方案 > 控制台中的字符串输出发生了什么

问题描述

我对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 模板项目)。

标签: c

解决方案


您没有在字符串 firstname 中分配足够的空间。Strcat 将 lastname 附加到 firstname 字符串并返回指向 firstname 字符串的指针。

快速修复将是:

char firstName[30] = "Omelian";

推荐阅读