gpt4 book ai didi

c - 在 C 中使用 strcat() 函数

转载 作者:行者123 更新时间:2023-11-30 15:22:34 24 4
gpt4 key购买 nike

将 C 与 A 连接时,结果不是我想要的。我怎样才能得到hellojames而不是helloworldjames

char  A[12] =  "hello";
char B[12] = "world";
char C[12] = "james";

strcat(A,B);
printf("%s", A);
output = helloworld


strcat(A,C);
printf("%s",A);
output = helloworldjames

最佳答案

当您使用 strcat(A, B) 时,标记 A 字符串结尾的空字符 ('\0') 将被 B 中的第一个字符替换,并且从此时开始追加 B 中的所有后续字符到 A(必须足够大才能容纳串联的结果,否则可能会发生未定义的行为)。

调用 strcat() 后,A 不再是您最初定义的内容,而是连接后产生的新字符串。

如果您想扭转这种情况,一个简单的解决方案是在使用 strlen() 进行串联之前保持 A 的长度。 :

int A_len = strlen(A);

通过这种方式反转 strcat(A, B),您只需将空字符设置为连接之前的位置即可:

A[A_len] = '\0';

此替换后,strcat(A, C) 返回 hellojames。

关于c - 在 C 中使用 strcat() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29189417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com