0
#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 已经“添加”了,它正在打印“无法识别的命令!”。

怎么了?

4

1 回答 1

2

(cmd == "add")中,您正在比较两个指向字符的指针,而不是比较字符串。

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

于 2013-10-08T02:19:40.607 回答