我想在strtok之后比较字符串,但我似乎变得虚假而不是真正的
如果我正在使用strtok,还有什么需要做的吗?
char file[] = "temp.txt";
ifstream getfile;
getfile.open(file,ios::in);
if(getfile.is_open())
{
char data[256];
char *line;
const char * test = "init";
//loop till end of file
while(!getfile.eof())
{
//get data and store to variable data
getfile.getline(data,256,'\n');
line = strtok(data," ");
while(line != NULL)
{
cout << "Comparing " << line << " with " << test <<endl;
//This is suppose to print but it dosent
if(line == test)
cout << line << endl;
line = strtok(NULL," ");
}
}
}
输出:
comparing init with init
想要输出:
comparing init with init
init
谢谢! :d
===========================
更改为以下内容并且有效! :)
if(strcmp(line,test)==0)
答案 0 :(得分:3)
你在比较指针而不是内容。查看strcmp或将C字符串包装在std :: string中。
答案 1 :(得分:2)
您正在比较指针(字符串的地址)。他们永远是不同的。使用strcmp()
比较字符串本身。