用C ++进行单词搜索

时间:2015-10-03 20:29:37

标签: c++

我制作了一个在文本文件中找到单词的代码。代码工作正常,但问题是我需要搜索确切的单词是否存在,但即使它只是另一个单词的一部分,它也会给出相同的结果。 我正在寻找单词' Hello'但它说已经存在cos,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();
    }

2 个答案:

答案 0 :(得分:2)

string line;
getline(file, line);

vector<string> words = TextToWords(line);
if (find(words.begin(), words.end(), someword) != words.end())
    cout << "\n Word already exists.\n";

TextToWords实施取决于您。或者使用正则表达式库。

答案 1 :(得分:1)

使用此代码分割单词并搜索预期单词:

#include <sstream>

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