NULL值和" 0" C中的字符串?

时间:2015-03-26 05:16:28

标签: c arrays string null

我在将"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, ",");? 

1 个答案:

答案 0 :(得分:2)

你无法像这样检查,

if(pch == "0"){
 ...
}

pch是指针。您正在将其与字符串进行比较。所以你必须像这样做,

if ( *pch == '0' ) { 
 ...
}

或者这样做,

if ( strcmp(pch,"0") == 0 ) {
 ...
}

它可以帮助您检查字符串中的zero