为什么控制进入IF?

Ale*_*der 1 c controls

          char *token = "gkjsdhvcxvcvbcbcv"            
          char c[90];  
          strcpy( c, token);
          c[sizeof(c)-1] = '\0';
          char *broken = strtok(c, " ");                 
          if ( broken != NULL)
          {  
            //Should not come here as there is no white space???
           }
Run Code Online (Sandbox Code Playgroud)

pax*_*blo 14

你得到的第一个令牌是整个字符串.第二次调用将返回NULL,因为没有更多令牌:

char *token = "gkjsdhvcxvcvbcbcv"            
char c[90];  
strcpy( c, token);
c[sizeof(c)-1] = '\0';
char *broken = strtok(c, " ");                 
if ( broken != NULL) {  
    // Will come in here, broken == c.
}
broken = strtok(NULL, " ");                 
if ( broken != NULL) {  
    // Won't come in here.
}
Run Code Online (Sandbox Code Playgroud)