我是一个新手,学习字符串标记。我试着用下面的方法比较两个字符串。但是我正在做的字符串比较是失败的。
你能告诉我这里缺了什么吗?
我找不到另一个类似的问题,可能是因为我在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
}

最佳答案

它失败是因为strcmp(及其同级)如果相等,则返回一个零值;如果第一个小于第二个,则返回一个负值;如果第一个大于第二个,则返回一个正值。
未指定负值或正值。在大多数实现中,它是前几个不同字符的区别。但这并不能保证。
将结果与1进行比较不大可能成功。

关于c - 为什么我的strcmp()失败?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30720533/

10-11 21:19