#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{ char* key="844607587";
while(*key!=0){
printf("hello world,%c\n",*key);
key++;}
}
为什么程序不会停在零位?那么0是什么意思呢?没有''的那个
您犯了一个简单的错误 - 您正在将字符串中的(最有可能的 ASCII)字符与数值 0 进行比较。更改:
while(*key!=0){
至
while(*key!='0'){
请注意,数值 0 是 C 字符串终止符的值,通常写为'\0'
,因此您的代码在到达字符串末尾时停止,而不是在看到字符时停止'0'
。
while(*key!=0)
应该是while(*key!='0')
跳过零。key
是字符串,所以*key
将是 char 并且您正在尝试*key
与整数零而不是字符零进行比较。
我认为是因为您将每个字符与数字 0 进行比较,这与字符“0”不同。
您正在将 key 与 0 char 或 (null) 字符进行比较,而不是 48 或 0 字符,请尝试''
while(*key!='0')
或者
while(*key!=48)
该字符'0'
与数值 0 不同。在ASCII中 '0' == 32
如果key = "8446\07587"
thenwhile(*key!=0)
可以正常工作,但是由于您正在处理字符,因此您需要比较字符
while (*key != '0')