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