#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!”。
有什么问题?
答案 0 :(得分:2)
在(cmd == "add")
中,您要比较两个指向字符的指针,您不比较字符串。
如果要比较C ++代码中的字符串,请使用std::string
。如果您想编写C风格的代码,请使用strcmp
。