本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。 输入格式: 输入给出一行字符。 输出格式: 在一行中输出单词个数。 输入样例:
时间: 2023-05-31 16:20:16 浏览: 110
统计输入字符串中的单词个数
### 回答1:
题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式: 输入给出一行字符。
输出格式: 在一行中输出单词个数。
输入样例:
输出样例:
感谢使用本程序!
### 回答2:
本题要求编写程序统计一行字符中单词的个数,可以按照以下思路进行解答:
1. 读入一行字符串,使用getline函数可以方便地获取一整行字符串。
2. 遍历字符串中的每个字符,同时记录当前字符的前一个字符是否为空格。
3. 如果当前字符不为空格,同时前一个字符为空格,说明遇到了一个新的单词,单词计数器加1。
4. 遍历完字符串后,输出单词计数器即可。
具体实现代码如下:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string line; // 定义字符串变量line
getline(cin, line); // 读入一行字符串
int count = 0; // 记录单词个数的计数器
bool prev_space = true; // 前一个字符是否为空格
for (int i = 0; i < line.size(); ++i) {
if (line[i] != ' ') { // 如果当前字符不是空格
if (prev_space) { // 如果前一个字符是空格,说明遇到了新的单词
++count; // 单词计数器加1
prev_space = false; // 更新前一个字符的状态为非空格
}
} else { // 如果当前字符是空格,更新前一个字符的状态为空格
prev_space = true;
}
}
cout << count << endl; // 输出单词个数
return 0;
}
```
### 回答3:
本题目要求编写一个程序,可以统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
首先,需要读入一行字符。可以使用标准输入函数scanf()来实现。
在读入一行字符之后,需要计算其中单词的个数。可以使用循环遍历这个字符串,当遇到空格时,说明当前单词已经结束,需要计数器加1。需要注意的是,字符串最后可能没有空格,因此需要在结尾处特判是否还有未统计的单词。
最后,可以使用标准输出函数printf()输出单词的个数。
示例代码如下:
#include <stdio.h>
int main()
{
char str[1010];
int i, cnt=1; // 初始化cnt为1,因为第一个单词前面没有空格
scanf("%[^\n]", str); // 读入一行字符,遇到换行符停止
for(i=0; str[i]!='\0'; i++) // 遍历整个字符串
if(str[i]==' ') // 当遇到空格时,说明当前单词已经结束,需要计数器加1
cnt++;
if(str[0]==' ') // 特判第一个字符是空格的情况
cnt--;
if(str[strlen(str)-1]==' ') // 特判最后一个字符是空格的情况
cnt--;
printf("%d\n", cnt); // 输出单词的个数
return 0;
}
阅读全文