C ++ Find Text&计算出现次数

时间:2017-03-09 02:12:34

标签: c++ find

我正在做一些课堂作业而没有任何运气让我的发现得到适当的工作。当我使用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;
}

希望我能错过一些简单的事情: - \提前感谢您的帮助!

1 个答案:

答案 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;
}