我在C编程,我需要定义一个字符数组。数组中的一个字符必须为0。 我试过像
这样的东西array[i] = '0';
但是当我用
将数组发送到输出时cout << array << endl;
0 char被解释为字符串分隔符,因此只打印索引0和i-1之间的数组部分。 我应该如何定义0字符,以便将数组打印为整个字符序列,而不会中断?问题可能取决于cout的性质(我的意思是,也许我的0 char的赋值是正确的,但打印函数有一些我忽略的奇怪行为)?
感谢您的帮助。
答案 0 :(得分:0)
字符文字(或在C中命名为字符常量)'0'
不是字符串的终止零。您似乎使用了'\0'
或整数文字0
而不是'0'
。 '\0'
或0确实是终止零并且值为0,而'0'
例如在ASCII中具有值48。
考虑到您写的是用C编程但显示了C ++代码段。:)
答案 1 :(得分:0)
array[i] = '0'; // ASCII code of 0 as a character goes in
array[i] = 0; // string terminator character, can also be written as '\0', same thing
答案 2 :(得分:0)
如果您只想发送ASCII字符0,可以写:
char a='0'
或
char a=48
我还不知道如何解决的问题是如何将空字节发送到串口,因为0
或\0
是相同的并且总是中断字符串!< / p>