我正在开发一个接受输入并输出与输入相对应的数值的程序。我在char部分得到了错误。我不明白为什么当数组中只有27个字符的大小为27时会出现错误?
int main ()
{
char greek[27] = "ABGDE#ZYHIKLMNXOPQRSTUFC$W3";
}
答案 0 :(得分:8)
对于尾随[28]
,您还需要一个'\0'
作为有效字符串。
看看C Programming Notes: Chapter 8: Strings:
C中的字符串由字符数组表示。结束了 string标有一个特殊字符,即null字符 只是值为0的字符。(空字符没有 除了名称以外的空关系。在ASCII字符中 set,null字符被命名为NUL。)null或字符串终止 字符由另一个字符转义序列\ 0。
表示
正如Jim Balter和Jayesh所指出的,当你提供初始值时,你可以省略数组大小(编译器使用初始化器的数量作为数组大小)。
char greek[] = "ABGDE#ZYHIKLMNXOPQRSTUFC$W3";