Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8700064
  • 博文数量: 1413
  • 博客积分: 11128
  • 博客等级: 上将
  • 技术积分: 14685
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-13 10:03
个人简介

follow my heart...

文章分类

全部博文(1413)

文章存档

2013年(1)

2012年(5)

2011年(45)

2010年(176)

2009年(148)

2008年(190)

2007年(293)

2006年(555)

分类: C/C++

2006-06-08 14:50:34

字符数组练习: 输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。

思路:
    程序中用i作循环变量, num统计单词个数, word作为判别是否是单词的标志,若word = 0 表示未出现单词, 如出现单词word置1。
    单词数目可由空格出现次数决定(连续若干空格作为出现一次空格;一行开头的空格不统计在内).如果测出某一个字符为非空格,而其前面的字符是空格,则表示"新单词开始",此时单词数num累加1.如果当前字符为非空格而其前面的字符也是非空格,则意味着仍是原来的单词的继续,num不累加.前面一个字符是否空格可以从word值分析,若word=0,则表示前一个字符是空格;如果word = 1,意味着前一个字符为非空格。


#include
int main()
{
    char string[81];
    int i;
    int num = 0;  /* 统计单词个数 */
    int word = 0; /* 是否为单词的标示 */
    char c;

    gets(string);

    for (i = 0; (c = string[i]) != '\0'; i++)
    {
        if (c == ' ')
            word = 0;
        else
            if (word == 0)
            {
                word = 1;
                num++;
            }
    }
    printf("\nThere are %d words int the line.\n", num);
    return 0;
}

运行结果(VC):
================================================
I am a boy.↙

There are 4 words int the line.
================================================

阅读(3159) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-05-10 19:03:48

不错!有点启发