使用strtok()进行错误的字符串比较

时间:2013-10-08 02:16:49

标签: c++

#include <iostream>
#include <string>
#include <stdio.h>
#include <stdlib.h>
using namespace std;

int main()
{
   char stringbuf[256] = "add joe smith 120120120";
   char* cmd = strtok(stringbuf, " ");

   if (cmd == "add")
    printf("ADD command recognized!\n");
   else
    printf("UNRECOGNIZABLE COMMAND!\n");

   system("PAUSE");
}

我已经使用断点来检查每个变量的含义。 cmd还有“添加”,它正在打印“UNRECOGNIZABLE COMMAND!”。

有什么问题?

1 个答案:

答案 0 :(得分:2)

(cmd == "add")中,您要比较两个指向字符的指针,您比较字符串。

如果要比较C ++代码中的字符串,请使用std::string。如果您想编写C风格的代码,请使用strcmp