【发布时间】:2013-11-14 21:32:00
【问题描述】:
我试图用空格分解一个 char,然后执行一些条件逻辑,但是在 char * 上使用 strcmp 不起作用。
int main(void)
{
char buf[64];
char *cmd;
// assign some space delimited words to buf...
if (strcmp(buf, "somestring junk") == 0) { // this works
// do stuff here
}
cmd = strtok(buf, " ");
if (strcmp(cmd, "somestring") == 0) { // this doesn't work
// do stuff here
}
return 0;
}
我尝试了不同的变体,例如“somestring”或“somestring\n”,但都没有成功。代码编译没有错误或警告。 strcmp 的手册页让我相信 strcmp 应该可以工作。我做错了什么?
【问题讨论】:
-
我知道你在调试器中运行了这个。 (对吗??)调试器说
buf的实际值是什么? -
请提供一个完整的例子——帮助我们帮助你!
标签: c linux char strtok strcmp