我正在做一些课堂作业而没有任何运气让我的发现得到适当的工作。当我使用CLION运行代码时,代码适用于单个单词。多个单词不起作用。此外,当上传到测试它的类网站时 - 类网站没有发现单个单词有效。
目标:实现FindText()函数,该函数有两个字符串作为参数。第一个参数是在用户提供的示例文本中找到的文本,第二个参数是用户提供的示例文本。该函数返回在字符串中找到单词或短语的实例数。在PrintMenu()函数中,提示用户找到单词或短语,然后在PrintMenu()函数中调用FindText()。在提示之前,调用cin.ignore()以允许用户输入新字符串。
我的编码尝试: 第一篇文章在菜单中,并调用" FindText"
cout << "Enter a word or phrase to be found:" << endl;
cin.ignore();
getline(cin, wordPhrase);
cout << "\"" << wordPhrase << "\" instances: " << FindText(userStr, wordPhrase) << endl << endl;
这是&#34; FindText&#34;
的代码int FindText(string userStr, string wordPhrase) {
int numWords = 0;
stringstream ss(userStr);
while (ss >> userStr) {
if (userStr == wordPhrase) {
numWords++;
}
}
return numWords;
}
希望我能错过一些简单的事情: - \提前感谢您的帮助!
答案 0 :(得分:0)
您应该使用另一个变量来保存您从ss
读取的字符串,而不是覆盖用于stringstream
的字符串。
int FindText(string userStr, string wordPhrase) {
int numWords = 0;
stringstream ss(useStr);
string word;
while (ss >> word) {
if (word == wordPhrase) {
numWords++;
}
}
return numWords;
}