请你完成代码:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。:#include <iostream> using namespace std; int main() { char s[100]; int i,flag=0,num=0; cin.getline(s,100); // 请在此添加代码,实现统计单词个数 /********** Begin *********/ /********** End **********/ cout<<"Word numbers:"<<num; return 0; }
时间: 2023-07-01 10:13:26 浏览: 28
统计一行字符中单词的个数,可以使用一个标记 `flag` 来记录当前是否处于单词中,遍历输入的字符串,遇到空格时,如果当前处于单词中,则将标记 `flag` 置为 0,并将单词计数器 `num` 加 1;否则,不进行任何操作。如果遍历到字符串结尾时,标记 `flag` 为 1,说明最后一个字符是单词的一部分,也应该将单词计数器 `num` 加 1。最后,输出单词计数器 `num` 即可。
具体实现如下:
```cpp
#include <iostream>
using namespace std;
int main() {
char s[100];
int i, flag = 0, num = 0;
cin.getline(s, 100);
cout << "输入字符串为:" << s << endl;
// 统计单词个数
for (i = 0; s[i] != '\0'; i++) {
if (s[i] == ' ') { // 空格
if (flag == 1) { // 单词末尾
flag = 0;
num++;
}
} else { // 非空格字符
flag = 1;
}
}
if (flag == 1) { // 字符串末尾
num++;
}
cout << "单词个数为:" << num << endl;
return 0;
}
```
其中,统计单词个数的过程通过遍历输入的字符串,判断其中的字符是否为空格,如果是空格,则根据标记 `flag` 判断当前是否处于单词中,如果是,则将标记 `flag` 置为 0,并将单词计数器 `num` 加 1;否则,不进行任何操作。如果遍历到字符串结尾时,标记 `flag` 为 1,说明最后一个字符是单词的一部分,也应该将单词计数器 `num` 加 1。最后,输出单词计数器 `num` 即可。