C++ 使用strtok()进行错误的字符串比较 #包括 #包括 #包括 #包括 使用名称空间std; int main() { char stringbuf[256]=“添加joe smith 120120”; char*cmd=strtok(stringbuf,“”); 如果(cmd==“添加”) printf(“已识别添加命令!\n”); 其他的 printf(“无法识别的命令!\n”); 系统(“暂停”); }
我已经使用断点检查了每个变量所包含的内容。 cmd还有“add”,它正在打印“unrecognable COMMAND!” 怎么了?在C++ 使用strtok()进行错误的字符串比较 #包括 #包括 #包括 #包括 使用名称空间std; int main() { char stringbuf[256]=“添加joe smith 120120”; char*cmd=strtok(stringbuf,“”); 如果(cmd==“添加”) printf(“已识别添加命令!\n”); 其他的 printf(“无法识别的命令!\n”); 系统(“暂停”); },c++,C++,我已经使用断点检查了每个变量所包含的内容。 cmd还有“add”,它正在打印“unrecognable COMMAND!” 怎么了?在(cmd==“add”)中,您正在比较两个指向字符的指针,而不是比较字符串 如果您想比较C++代码中的字符串,请使用 STD::String < /代码>。如果您想编写C风格的代码,请使用strcmp您无法比较这样的字符串。查看strcmp()。 #include <iostream> #include <string> #include
(cmd==“add”)
中,您正在比较两个指向字符的指针,而不是比较字符串
如果您想比较C++代码中的字符串,请使用<代码> STD::String < /代码>。如果您想编写C风格的代码,请使用strcmp
您无法比较这样的字符串。查看strcmp()。#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");
}