我正在研究一个接受输入并输出与输入相对应的数值的程序。我在char部分得到了错误。我不明白为什么当数组中只有27个字符且大小为27时会出现这样的错误?
int main ()
{
char greek[27] = "ABGDE#ZYHIKLMNXOPQRSTUFC$W3";
}
您需要再加上一个[28]
才能使尾随'\0'
有效字符串。
看一下C编程注意事项:第8章:字符串:
C中的字符串由字符数组表示。字符串的末尾标有特殊字符,即空字符,即值为0的字符。(空字符除名称外与空指针没有关系。在ASCII字符集中,空字符空字符或以字符串结尾的字符由另一个字符转义序列\ 0表示。
正如Jim Balter和Jayesh所指出的那样,当您提供初始值时,您可以省略数组大小(编译器使用初始化程序的数量作为数组大小)。
char greek[] = "ABGDE#ZYHIKLMNXOPQRSTUFC$W3";
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句