gpt4 book ai didi

C 字符串追加

转载 作者:太空狗 更新时间:2023-10-29 16:19:48 24 4
gpt4 key购买 nike

我想追加两个字符串。我使用了以下命令:

new_str = strcat(str1, str2);

此命令更改 str1 的值。我希望 new_strstr1str2 的串联,同时 str1 不会被改变.

最佳答案

您还需要分配新空间。考虑这个代码片段:

char * new_str ;
if((new_str = malloc(strlen(str1)+strlen(str2)+1)) != NULL){
new_str[0] = '\0'; // ensures the memory is an empty string
strcat(new_str,str1);
strcat(new_str,str2);
} else {
fprintf(STDERR,"malloc failed!\n");
// exit?
}

您可能需要考虑稍微安全一些的 strnlen(3)

已更新,见上文。在某些版本的 C 运行时中,malloc 返回的内存未初始化为 0。将 new_str 的第一个字节设置为零可确保它看起来像一个空字符串到 strcat。

关于C 字符串追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5901181/

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