这就是我想要做的事情,这几乎不是我所做的整个计划的一小部分。这部分是计算我输入的单词的数量。
string s;
getline(cin, s);
for (unsigned int i = 0; i < s.length(); i++)
{
if (s[i] == ' ' || s[i] == '.')
{
numWords++;
}
}
如果有人在最后输入一个句号正确的行,这显然有效。我想不出如何让它识别出行尾字符,但是他们没有放一段时间。
答案 0 :(得分:0)
为什么不在1上启动numWords计数器并仅计算空格?
答案 1 :(得分:0)
您只需计算行中“”的数量,然后将其添加到1
。就是这样。
答案 2 :(得分:0)
bool previousSpace = false;
for (unsigned int i = 0; i < s.length(); i++)
{
if (isspace(s[i]) || s[i] == '.')
{
if (previousSpace == false)
{
numWords++;
previousSpace = true;
}
}
else
{
previousSpace = false;
}
}
cout << numWords + (previousSpace ? 0 : 1) << endl;
这考虑了多个连续的空格。这里的关键是使用isspace
函数。
答案 3 :(得分:-1)