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