字符串比较

问题描述

单词文件如何存储在文本文件中。

我试图从中获取一个单词作为输入,并将其与本地路径中存在的单词进行比较。

如何将输入的单词与文件中的单词进行比较。

#include <iostream>
#include <fstream>
using namespace std;

string str;
fstream file;
string word,t,q,filename;

void read()
{
    cout << "Enter the word to search in the dictionary:";
    cin >> str;
    cout << "Your Entered word is :" << str;
    cout << "\nsearching in the librabry(Dictionary).";
    return;
}

void search()
{
    //string str;
    filename = "da1.txt";

    file.open(filename.c_str());
    if (str == word)
    {
        cout << "Found" << word << endl;
    }
    else
    {
        cout << "\nEntered word does not exist in the library." << endl;
    }
    return;
}

int main()
{
    search();
}

我非常确定我的单词不会与文字中的单词进行比较。

解决方法

您的问题在这里:

void read()
{
  cout<<"Enter the word to search in the dictionary:";
  cin>>str;
  cout<<"Your Entered word is :"<<str;
  cout<<"\nsearching in the librabry(Dictionary).";
  return;
}

and的原因是:

    永远不会调用
  1. read()方法,
  2. 您要求输入单词进行搜索,但是会将输入内容分配给 str 变量
  3. 在搜索方法中,您执行if(str==word),以便比较2个未初始化的对象
  4. 您应该执行类似std::string str{};
  5. 的操作
,

您没有调用方法read(),因此您的变量wordnull
其次,您似乎想知道str是否包含word,而不是简单的等式。检出this link
如@Paul Sanders所述,您不是从文件中读取数据