gpt4 book ai didi

c - 如何在C中的字符串末尾添加 "\n"

转载 作者:太空宇宙 更新时间:2023-11-04 00:20:10 27 4
gpt4 key购买 nike

我知道如何在字符串上执行此操作,所以 "hello world" 将是 "hello world\n"。但是如果我有类似 char *str = "helloworld". 的东西,并且我想在 str 的末尾添加\n,我应该怎么做呢?

最佳答案

你不能这样做。

当你使用

char *str = "helloworld";

str 指向一个不可修改的字符串。除了文字中的字符之外,它也没有任何额外的可用空间,因此您无法扩展它的大小。

如果您需要一个与 str 相同但添加换行符的字符串,您需要先制作一个副本。

char *newstr = malloc(strlen(str) + 2);
strcpy(newstr, str);
strcat(newstr, "\n");

请记住将长度加 2:1 个字节用于添加换行符,另一个用于尾随的空值。

参见 Why do I get a segmentation fault when writing to a string initialized with "char *s" but not "char s[]"?有关使用之间差异的更多信息

char str[] = "helloworld";

char *str = "helloworld";

关于c - 如何在C中的字符串末尾添加 "\n",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49991525/

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