求字符串中单词的个数

来源:互联网 发布:软件开发工程师待遇 编辑:程序博客网 时间:2024/06/04 17:51

一、题目很简单:输入若干单词,输出它们的平均长度。单词只包含大小写字母,用一个或多个空格隔开。

 

二、解题的关键在于2点:1、如何求每个单词长度 2、用什么方法求出单词的个数。

 

1、求字符串的长度,我首先想到了"strlen"函数:

代码如下:

#include<stdio.h>include<string.h>int main(){char s[100];scanf("%s",s);int a=strlen(s);printf("%d\n",a);}

这里定义了一个字符型数组s[],大小为100(可以根据需要进行改变)。int a=strlen(s);的作用是把所求字符串的长度赋给整型变量a,从而实现字符串长度的计算。这里,%s遇到空格就停止读取字符串。

 

此外,利用getchar()函数也可以实现求字符串的长度:

代码如下:

#include<stdio.h>int main(){ int len=0; while(getchar()!=10) len++; printf("It's length is %d.\n",len); return 0;}

getchar()函数从标准输入设备(即键盘)接收一个字符,返回该字符的ASCII码.因为回车被输入时被转换成换行符(LF,ASCII码为10),所以getchar()返回10时就知道输入结束了.

2、单词的个数,即每用一次strlen函数就计数一次,最后所得的结果就是单词的个数。

 

三、完整代码如下:

#include<stdio.h>#include<string.h>#define N 100int main(){    char s[N];    int i,j,l=0,num=0;    while(scanf("%s",s)!=EOF)    {        l=l+strlen(s);        num++;    }    double p=l*1.0/num;    printf("%.2lf",p);    return 0;}