c语言题目描述 输入一行字符,统计并输出其中有多少个单词,单词之间用空格分隔。 输入 只有一行,保证只包含可见字符,且此行的所有字符数不超过100。 输出 一个整数,表示输入的一行字符中共有多少个单词。 请注意行尾输出换行。 样例输入 I am a program. 样例输出 4
时间: 2024-03-20 19:39:52 浏览: 20
这道题可以使用循环遍历输入的字符,当遇到空格或者回车时,认为当前单词已结束,计数器加1,然后继续遍历下一个单词。最后输出计数器的值即可。
以下是 C 语言的代码实现:
```c
#include <stdio.h>
int main() {
int words = 0; // 初始化单词计数器为0
char c; // 存储当前读入的字符
while ((c = getchar()) != '\n') { // 循环读入字符,直到读到回车为止
if (c == ' ') { // 遇到空格,认为当前单词已结束
words++; // 计数器加1
}
}
words++; // 最后还有一个单词没有统计,需要加1
printf("%d\n", words); // 输出单词计数器的值,并换行
return 0;
}
```
输入样例:
```
I am a program.
```
输出样例:
```
4
```
相关问题
用C语言本题目要求编写程序,输入一行字符,统计每个单词的长度。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个
好的,您想问的是用C语言编写一个程序,输入一行字符,统计每个单词的长度,对吧?
是的,您理解得很准确。下面是一个示例程序,可以实现您所需的功能:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int len = 0, count = 0, i;
printf("请输入一行字符:\n");
gets(str);
for(i = 0; i <= strlen(str); i++)
{
if(str[i] == ' ' || str[i] == '\0')
{
if(len > 0)
{
printf("%d ", len);
count++;
len = 0;
}
}
else
{
len++;
}
}
printf("\n共有%d个单词\n", count);
return 0;
}
```
这个程序中,我们首先定义了一个字符串变量`str`,用于存储用户输入的一行字符。然后我们定义了三个整型变量`len`、`count`和`i`,分别用于记录当前单词的长度、单词的总数和循环计数器。接下来,我们使用`gets`函数从标准输入读取用户输入的一行字符,并存储到`str`中。
然后我们开始遍历`str`中的每个字符。如果当前字符是空格或者字符串的结尾符`\0`,就说明一个单词已经结束了。我们判断一下当前单词的长度`len`是否大于0,如果是,就说明这是一个有效的单词,我们打印出这个单词的长度,并将单词的总数加1。然后将`len`清零,准备统计下一个单词的长度。
如果当前字符不是空格或者字符串的结尾符`\0`,就说明这是单词的一部分,我们将`len`加1,继续统计当前单词的长度。
最后,我们输出单词的总数,程序结束。
希望这个程序能够帮助到您!
c语言本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
以下是C语言实现统计一行字符中单词个数的代码:
```c
#include <stdio.h>
int main() {
char word;
int count = 0, blank = 1;
while (word != '\n') {
scanf("%c", &word);
if (word != ' ' && blank == 1 && word != '\n') {
count++;
blank = 0;
}
if (word == ' ' && blank == 0) {
blank = 1;
}
}
printf("%d", count);
return 0;
}
```