如何解决在文本文件中查找一个单词并在 C++ 中显示该单词的起始位置
我目前正在做一个大学项目,在项目中我应该打开一个 .txt 文件并获取用户输入的单词并在文本文件中搜索是否有任何匹配,如果程序找到一个或多个单词,它应该输出单词的起始位置。 我写了这段代码,但它不能完全工作,我做错了什么或有什么建议吗?真的很感激。
Myfile.open("Test.txt",ios::in);
if (Myfile.is_open())
{
string line,search;
int i,j=0,x,y,z=-1;
while (getline(Myfile,line))
{
cin >> search;
x = line.size();
y = search.size();
for ( i = 0; i <= x; i++)
{
if (line[i]==search[j])
{
z++;
j++;
if (z==y)
{
cout << i-y << " " ;
z -= y - 1;
j -= y -1;
}
}
if (i==x)
{
cout << " That's all I've Found :) ";
break;
}
}
}
} ```
解决方法
您可以为该任务使用 std::string::find 方法,而不是编写自己的容易出错的代码,该方法只返回您需要的内容:https://www.cplusplus.com/reference/string/string/find/。 如果您需要编写自己的代码而不使用内置方法,请搜索现有的模式匹配算法,例如 Boyer-Moore 或 KMP。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。