繁体   English   中英

用于c的string.compare

[英]string.compare for c++

我要用户输入一个单词,然后让我的程序将它与输入的.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<<"Right\n";
    if (youkno.compare(s[i]->name) != 0)
        cout<<"Wrong\n";
  }

如果我提示香蕉然后输出错误

如果您更换:

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的最后一个值项目

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM