gpt4 book ai didi

c - C 中 "declare"字符串的最佳方法

转载 作者:太空狗 更新时间:2023-10-29 16:52:01 25 4
gpt4 key购买 nike

我是 C 世界的新手(来自 PHP)。我在玩字符串(我知道没有这种类型的数据)。

我的问题是“声明”字符串的最佳方式是什么?

通过一些研究,我得出了这一点。

char str[40] = "Here is my text";
char str[] = "Here is my text";
char *str = "Here is my text";

最佳答案

这取决于您的需求。

char str[40] = "Here is my text";

这将分配一个 40 个字符的数组。前 15 个字符将根据指定的字符串设置。其余的将设置为空值。如果您稍后需要修改字符串,但知道它不会超过 40 个字符(或 39 个字符后跟空终止符,具体取决于上下文),这将很有用。

char str[] = "Here is my text";

这与上面的示例相同,除了 str 现在限制为包含 16 个字符(15 个用于字符串 + 一个空终止符)。

char *str = "Here is my text";

str 现在是一个指向 15 个字符(加上空终止符)的字符串的指针。您不能修改字符串本身,但可以使 str 指向其他地方。在某些环境中,这不是强制执行的,您实际上可以修改字符串内容,但这不是一个好主意。如果你确实需要使用指针并修改字符串本身,你可以复制它:

char *str = strdup("Here is my text");

但是你需要free(str) 否则你的代码会泄漏内存。

关于c - C 中 "declare"字符串的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7651930/

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