用c语言写一个程序输入一行字符,统计其中单词的个数,单词之间用空格间隔 设计分析: 按照题意,连续的一段不含空格类字符的字符串就是单词。将连续的若干个空格作为出现一次空格,那么单词的个数可以由空格出现的次数(连续的若干个空格看作一次空格,一行开头的空格不统计)来决定。如果当前字符是非空格类字符,而它的前一个字符是空格,则可看作是“新单词”开始,累计单词个数的变量加1;如果当前字符是非空格类字符,而前一个字符也是非空格类字符,则可看作是“旧单词”的继续,累计单词个数的变量取值保持不变。
时间: 2023-06-04 12:04:17 浏览: 129
我可以回答你的第一个问题。下面是 C 语言的代码,可以实现输入一行字符,统计其中单词的个数:
```
#include<stdio.h>
int main()
{
char str[1000];
int word_count = 0, i;
gets(str);
for(i=0; str[i]!='\0'; i++)
{
if(str[i]!=' ' && (i==0 || str[i-1]==' '))
{
word_count++;
}
}
printf("单词个数:%d", word_count);
return 0;
}
```
这个程序中,我们首先定义了一个长度为 1000 的字符数组 `str`,用来保存输入的字符串。然后使用 `gets()` 函数读取用户输入的一行字符。之后,我们遍历字符串中的每个字符,判断当前字符是否为空格,以及它的前一个字符是否为空格。如果当前字符不是空格,而前一个字符是空格,就说明当前遍历到了一个新的单词,单词计数器 `word_count` 加 1;否则,当前单词的计数器保持不变。最后,我们用 `printf()` 将单词个数输出到屏幕上。
希望能够帮到你!
阅读全文