用c语言编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
时间: 2023-12-18 22:56:39 浏览: 30
以下是用C语言编写程序统计一行字符中单词的个数的代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int words = 0, len, i;
printf("Enter a line of text: ");
fgets(str, 100, stdin); // 从标准输入获取一行文本
len = strlen(str);
for (i = 0; i < len; i++) {
if (str[i] == ' ') {
if (str[i - 1] != ' ') { // 判断是否为新单词的开始
words++;
}
}
}
// 处理最后一个单词
if (str[len - 1] != ' ') {
words++;
}
printf("There are %d words in the line.\n", words);
return 0;
}
```
程序首先从标准输入(键盘)获取一行文本,然后遍历文本中的每个字符,如果遇到空格,就判断前一个字符是否也是空格,如果不是,就认为这是一个新单词的开始,单词数加一。最后需要特殊处理一下最后一个单词,因为最后一个单词后面可能没有空格。
相关问题
用C语言编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
以下是两种用C语言编写程序统计一行字符中单词个数的例子:
1.使用while循环和if语句逐个字符检索,统计单词数。
```c
#include <stdio.h>
int main() {
int sum=0;//字符总数
char a;//单字检索
while(1)//死循环在使用时注意与break搭配
{
scanf("%c",&a);
if(a=='\n') break;
else if(a!=' ')//确保开始时符号不是空格或回车
{
sum++;//检索首字母,统计单词数
while(1)//单词检索
{
scanf("%c",&a);
if(a==' '||a=='\n')//检索到词尾,这样就形成了两空格夹一个单词的形式, break; //解决了単词间空格个数不定问题
}
}
if(a=='\n') break;//只有当单词后为回车时结束两层循环
}
printf("%d",sum);
return 0;
}
```
2.使用字符数组和for循环逐个字符判断,统计单词数。
```c
#include <stdio.h>
int main() {
char a[1000];//字符数组
gets(a);//获取字符串
int i;//循环变量
int l;//记录字符串长度
int num = 0;//单词数量
for(i=0;a[i]!='\0';i++);//记录字符串长度
l=i;
for(i=0;i<l;i++)//循环判断
{
if(a[i]!=' ' && a[i+1]==' ')//符合[?][空格]的情况
num++;
if(a[i]!=' ' && a[i+1]=='\0')//符合[?]['\0']的情况
num++;
}
printf("%d\n",num);
return 0;
}
```
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;
}
```