为什么我的strcmp()失败了?

时间:2015-06-08 23:09:51

标签: c strtok strcmp

我是C新手,学习字符串标记。我试图通过以下方式比较两个字符串。但我正在做的字符串比较是失败的。

你能告诉我这里缺少的东西吗?

我无法找到另一个类似的问题,可能是由于我对C的经验不足。如果有的话,请你转发给我吗?

char* input = "comparer here";

char* args[5];

int counter = 0;
char *tok = strtok(input, " ");
while (tok != NULL) {
   args[counter] = tok;
   counter ++;
   if (counter == 5)
     break;
   tok = strtok(NULL, " ");
}

char* comp_str = "comparer";    
if (strcmp(args[0], comp_str) == 1) {
        // do some stuff
}

3 个答案:

答案 0 :(得分:2)

失败是因为strcmp(及其兄弟姐妹)如果相等则返回零值,如果第一个小于第二个则返回负值,如果第一个大于第二个则返回正值。

未指定负值或正值。在大多数实现中,它是第一个不同字符的差异。但这并不能保证。

将结果与1进行比较的可能性不大。

答案 1 :(得分:0)

您正在定义一个名为input的字符串,但使用名为message的变量undefined。

答案 2 :(得分:0)

当要比较的两个字符串相等时,

strcmp()返回0。如果要检查两个字符串是否相等,则应将1更改为0.