C 中的 NULL 值和“0”字符串?
NULL values and "0" strings in C?
我在将 "0"
字符串添加到 C 中的字符串列表时遇到问题。
使用我当前的代码,我无法区分 NULL
值和 "0"
值。我曾尝试使用 if 语句 (if(pch == "0"))
进行调试,但是当我输出它时,它不会进入 if 语句。
printf("%c\n",next_line[0]);
pch = strtok(next_line,",");
printf("%s\n",pch);
if(pch == "0"){
printf("NULL VALUE");
strcpy(strs[i],pch);
i++;
pch = strtok(NULL, ",");
}
while(pch != NULL){
strcpy(strs[i],pch);
i++;
pch = strtok(NULL, ",");
}
//go on to print values
输入是:0,1,03:48:13,9
我从来没有超过第一个角色。我可以做些什么来保留我的代码?我可以更改
pch = strtok(NULL, ",");
to pch = strtok(SOMEOTHERVALUE, ",");?
你不能这样检查,
if(pch == "0"){
...
}
pch 是指针。您正在将其与字符串进行比较。所以你必须这样做,
if ( *pch == '0' ) {
...
}
否则就这样做,
if ( strcmp(pch,"0") == 0 ) {
...
}
它会帮助你检查字符串中的zero
。
我在将 "0"
字符串添加到 C 中的字符串列表时遇到问题。
使用我当前的代码,我无法区分 NULL
值和 "0"
值。我曾尝试使用 if 语句 (if(pch == "0"))
进行调试,但是当我输出它时,它不会进入 if 语句。
printf("%c\n",next_line[0]);
pch = strtok(next_line,",");
printf("%s\n",pch);
if(pch == "0"){
printf("NULL VALUE");
strcpy(strs[i],pch);
i++;
pch = strtok(NULL, ",");
}
while(pch != NULL){
strcpy(strs[i],pch);
i++;
pch = strtok(NULL, ",");
}
//go on to print values
输入是:0,1,03:48:13,9
我从来没有超过第一个角色。我可以做些什么来保留我的代码?我可以更改
pch = strtok(NULL, ",");
to pch = strtok(SOMEOTHERVALUE, ",");?
你不能这样检查,
if(pch == "0"){
...
}
pch 是指针。您正在将其与字符串进行比较。所以你必须这样做,
if ( *pch == '0' ) {
...
}
否则就这样做,
if ( strcmp(pch,"0") == 0 ) {
...
}
它会帮助你检查字符串中的zero
。