提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
题目:
[实验案例3:字符数组]
输入一行字符,统计其中有多少个单词,单词间用空格分隔(当然这种统计是有局限性的)。
[实验指导]
解题思路:
统计单词的数目可以通过空格出现的次数来确定,连续的空格按一个空格处理,一行开头的空格不统计。设置一个变量word作为判断是否为单词的标志,0表示未出现单词,1表示出现单词。如果检测出空格,显然没有新的单词出现,word=0;如果检测出非空格,则还需要考虑其前一个字符,如果前一个字符也是非空格(通过判断word的值),说明此字符与前一个非空格的字符同为一个单词;否则,即前一个字符是空格,则为新单词出现,单词计数加1(num++),将标志word置为1。字符与新单词的关系如表6-2所示。
表6-2 字符与新单词的关系
前一个字符 | 当前字符 | 新单词的判断 |
不用考虑 | 空格 | 没有新单词 |
非空格 | 非空格 | 没有新单词 |
空格 | 非空格 | 新单词出现 |
程序流程如实验图6-2所示。
代码:
/*统计单词个数,文件名sy6-3.c*/
#include<stdio.h>
int main()
{
char str[100],c;
int i,num=0,word=0;
printf("请输入字符串:\n");
gets(str); /*输入字符串赋值给数组str*/
for(i=0;(c=str[i])!='\0';i++)
{
if(c==' ') /*如果当前字符为空格符*/
word=0;
else if(word==0) /*如果前一个字符为非空格*/
{
word=1;
num++;
}
}
printf("单词总数为:%d. ",num);
return 0;
}
结果:
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了字符数组。