为什么我的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 } 

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

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

将结果与1进行比较是不太可能成功的。

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

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