string.compare for c++

string.compare for c++

本文关键字:c++ for compare string      更新时间:2023-10-16

我要求用户输入一个单词,然后让我的程序将其与输入的。txt文件进行比较但是即使我在data.txt中输入了一个单词,它仍然执行false。

//------------in my data.txt---------
// Banana Bed Today
// Apples Chair Window
// Corn Tomorrow Hive
string testData;
  cout<<"enter Data: ";
  cin>>testData;
  for(i=0; i<s.size()-1; i++){
    if (testData.compare(s[i]->name) == 0)
      cout<<"Rightn";
    if (youkno.compare(s[i]->name) != 0)
        cout<<"Wrongn";
  }

如果我提示Banana,那么输出执行错误

如果您替换:

for(i=0; i<s.size()-1; i++){

:

for(i=0; i<s.size(); i++){  // Adjusting to check last entry as well.
    cout << "[" << s[i]->name << "][" << testData << "]" << endl;

你可能会发现它变得非常明显。很有可能其中一个字符串与您期望的不太一样。

s[i]->name是什么?如果您从文件中读取该数据,您可能已经将行结束符包含在name变量中。

还有,为什么不用operator==呢?

编辑:刚刚注意到你有一个错误。for循环应该是

for(i=0; i<s.size(); i++)

否则不比较s

中的最后一个值项