2013-10-08 18 views
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还有“添加”,它正在打印“UNRECOGNIZABLE COMMAND!”。错误的字符串比较使用strtok()

出了什么问题?

+0

你不能比较那样的字符串。看看'strcmp()'。 –

回答

2

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

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

+0

哦,我明白了!得到它现在的工作,谢谢! – Evan