【问题标题】:strcat() in c language programmingc语言编程中的strcat()
【发布时间】:2017-03-25 05:28:02
【问题描述】:

当我运行这段代码时,我总是在我的 IDE 中发现问题。你能给出这个解决方案吗?

#include<stdio.h>
#include<string.h>
int main(void)
{
   char cname[4]="mahe";
   strcat(cname, "Karim");
   printf("%s",cname);
   getch();
   return 0;
}

【问题讨论】:

标签: c strcat


【解决方案1】:

您的数组不够大。原始数组不足以容纳初始值末尾的空字节,因此strcat() 无法找到字符串的结尾。然后你添加到它,它写在数组之外。这些都会导致未定义的行为。

它需要声明为足够大以容纳原始字符串、要添加到其中的字符串以及尾随的空字节。所以它必须至少有 10 个字节(4+5+1)。

char cname[10] = "mahe";
strcat(cname, "Karim");
printf("%s\n", cname);

【讨论】:

    【解决方案2】:

    char cname[4] 更改为char cname[10]。因为您设置的大小为 4,所以在最初添加 4 个字符后,您无法再对其附加任何内容。

    所以,改变大小。就是这样

    【讨论】:

      猜你喜欢
      • 2022-06-14
      • 1970-01-01
      • 1970-01-01
      • 2013-08-16
      • 1970-01-01
      • 1970-01-01
      • 2010-11-29
      • 2012-07-09
      • 2014-10-06
      相关资源
      最近更新 更多