c - 声明字符数组时是否需要提供空字符?

标签 c arrays string

C语言中的字符串常量是以字符数组的形式存储的,在逐个元素创建这样的数组时,是否需要提供空字符。

我需要存储一个字符串常量,例如,S[number]= "hello\n"。字符串常量在C中以字符数组的形式存储,而且,这样的字符串以空字符'\0'结束。将短语存储在数组中时,我是否需要考虑空字符并分配额外的空间,还是只需要提及我需要存储的字符数?

最佳答案

如果您要使用 C 字符串函数,例如 strlen,- 那么答案是。您的字符串应该以 null 结尾。如果您引入自定义函数来处理字符串 - 您可以随意存储它。

值得一提的是,如果您使用字符串常量创建数组,它会自动为空字符保留空间。例如。以下代码的输出:

char s[] = "hello";
printf("%d", sizeof(s) / sizeof(char));

6

'h、'e'、'l'、'l'、'o' 为 5,'\0' 为 1。

关于c - 声明字符数组时是否需要提供空字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23286738/

相关文章:

c++ - 如何推送字符数组?

c# - Visual Studio 2013 : Testing/Assert Strings

c - 用套接字描述符认识家族

c - 抑制来自 PC Lint Global 的消息 结束了吗?

python - numpy:有没有办法从不带外部循环的映射序列创建数组?

c - 从 char 数组中删除一个元素 (C)

java - 如何在 stringbuilder 中放置空格

string - Hive 查询字符串大小写

c - UTF-16 文件无法正确打印

java - 回溯方法上的 StackOverFlowError