为什么我在C中创建的新字符串有╠;而不是空白?
初始化字符串时: charpol[100] 打印出来,我觉得很奇怪╠ 签100次。 我的问题是如何初始化一个字符串,打印它并且只得到空白? 谢谢 初始化字符串时: 变量为什么我在C中创建的新字符串有╠;而不是空白?,c,C,初始化字符串时: charpol[100] 打印出来,我觉得很奇怪╠ 签100次。 我的问题是如何初始化一个字符串,打印它并且只得到空白? 谢谢 初始化字符串时: 变量pol尚未初始化,仅声明,因此,由于的定义,此时可能是或可能不是字符串。在这种状态下使用它(例如在printf()语句中)是危险的,因为它可以调用 更改此项: char pol[100]; 对此 char pol[100] = {0};//initializes entire array to `0`. 或者,例如: char
pol
尚未初始化,仅声明,因此,由于的定义,此时可能是或可能不是字符串。在这种状态下使用它(例如在printf()
语句中)是危险的,因为它可以调用
更改此项:
char pol[100];
对此
char pol[100] = {0};//initializes entire array to `0`.
或者,例如:
char pol[100] = {"temporary"};//initializes to |t|e|m|p|o|r|a|r|y|0|?|?|?|?|
//which is a null terminated string
初始化字符串时:
变量pol
尚未初始化,仅声明,因此,由于的定义,此时可能是或可能不是字符串。在这种状态下使用它(例如在printf()
语句中)是危险的,因为它可以调用
更改此项:
char pol[100];
对此
char pol[100] = {0};//initializes entire array to `0`.
或者,例如:
char pol[100] = {"temporary"};//initializes to |t|e|m|p|o|r|a|r|y|0|?|?|?|?|
//which is a null terminated string
您可以通过以下方式实现:
char pol[100];
pol[0] = '\0';
第一个字符将是空字符
如果需要所有数组:charpol[100]={0}
通过以下方式进行测试:
char test[100] = { 0 };
for (int i = 0; i < 100; i++)
printf("%c ", test[i]);
在较新版本上:
lea rdx, [rbp-112]
mov eax, 0
mov ecx, 12
mov rdi, rdx
rep stosq
mov rdx, rdi
mov DWORD PTR [rdx], eax
add rdx, 4
在选择合适的编译器时对其进行测试您可以使用:
char pol[100];
pol[0] = '\0';
第一个字符将是空字符
如果需要所有数组:charpol[100]={0}
通过以下方式进行测试:
char test[100] = { 0 };
for (int i = 0; i < 100; i++)
printf("%c ", test[i]);
在较新版本上:
lea rdx, [rbp-112]
mov eax, 0
mov ecx, 12
mov rdi, rdx
rep stosq
mov rdx, rdi
mov DWORD PTR [rdx], eax
add rdx, 4
在选择合适的编译器时测试它╠
是OEM 850代码页中带有code0xCC
的字符
在调试版本中,Visual C使用0xCC
初始化未初始化的数据,以帮助您检测未初始化的数据
您应该初始化数组
char pol[100] = {0};
或
╠
是OEM 850代码页中带有code0xCC
的字符
在调试版本中,Visual C使用0xCC
初始化未初始化的数据,以帮助您检测未初始化的数据
您应该初始化数组
char pol[100] = {0};
或
char pol[100]={0}
将数组的所有元素初始化为0。然而,char pol[100]={1}
将第一个元素初始化为1,其余元素初始化为0。记住这一点。请添加代码>在声明之后,初始化为char pol[100]={0}代码>,谢谢第一个字符它是空字符。那么其余的字符呢?就像@UnholySheep所说的,用0
初始化所有数组char pol[100]={0}
将数组的所有元素初始化为0。然而,char pol[100]={1}
将第一个元素初始化为1,其余元素初始化为0。记住这一点。请添加代码>在声明之后,初始化为char pol[100]={0}代码>,谢谢第一个字符它是空字符。其余的字符呢?如@UnholySheep所说,用0
初始化所有数组。╠ 代码页437中的0xCC表示。你可以找到很多关于你的问题╠ 这里是0xCC,以此类推,╠ 代码页437中的0xCC表示。你可以找到很多关于你的问题╠ 这里是0xCC,以此类推,这与我无关。这是吹毛求疵。但是,好吧,更新的.437更有可能,但我想这与ASCIW无关,这是吹毛求疵。但是,好吧,更新了.437的可能性更大,但我想那会很挑剔