我编写了一个在文本文件中找到单词的代码。该代码工作正常,但问题是我需要搜索是否存在确切的单词,但即使它只是另一个单词的一部分,它也会给出相同的结果。
例如,我正在寻找单词“ Hello”,但它说该文本文件已经存在,因为txt文件中的单词“ Hello_World”并不相同,但包含了该单词。
我该如何检查确切的单词而忽略其他单词。我想用单词的长度做些什么,而忽略更长的时间,但不确定。
代码在这里:

cout << "\n Type a word: ";
    getline(cin, someword);

    file.open("myfile.txt");

    if (file.is_open()){
        while (!file.eof()){
            getline(file, line);
            if ((offset = line.find(someword, 0)) != string::npos){

                cout << "\n Word is already exist!! " << endl;
                file.close();
            }
        }
        file.close();
    }

最佳答案

使用此代码拆分单词并搜索所需的单词:

#include <sstream>

stringstream ss(line);
while (getline(ss, tmp, ' ')){
    if (tmp == someword){
        //found
    }
}

10-07 19:17
查看更多