【发布时间】:2016-03-31 12:37:49
【问题描述】:
我已经提示用户在我的程序的main函数中输入一个字符串并存储userString,并想显示有多少个单词。
这是我打算从 main 调用的函数:
int countWords(string d) {
string words = " ";
for (int e = 0; e < d.length(); e++) {
if (isspace(d[e])) {
cout << "The string " << words << "word(s). ";
}
}
return words;
}
我在某处读到该函数实际上应该计算空格的数量(这就是我使用isspace() 的原因),而不是单词本身。
如何计算字符串中的单词数并将其显示在同一个函数中?我很难弄清楚,而且我遇到了错误。
我也不能使用库函数。
预期输出:
- 字符串“2020”只有一个单词。
- 字符串“Hello guy”有两个单词。
【问题讨论】:
-
我建议您在函数顶部添加一个
int count = 0;,然后在纸上完成您自己的示例(可能还有更多),同时想象当您遇到每个值时count会发生什么d[e]。如果您不确定如何在代码中表达这一点,那将是一个更好的问题,但我相信您可以制定一些逻辑/算法来计算一个人如何计算字数,我不知道'在您当前的代码中没有看到任何表达的尝试。提示:您可能会发现自己对从空格到字母和返回的转换感兴趣(即isspace(d[e]) && !isspace(d[e-1]). -
你的函数不做任何计数,只输出空格