c语言单词计数及单词的换行输出

2012-11-01 09:12:16 · 作者: · 浏览: 482
    1、程序要求:程序执行,每输入一个字符进行统计,state 变量用于统计是否在单词之中。当state由OUT改为IN表明有新单词输入,单词数目进行加一操作。
   
    #include <stdio.h>
   
    #define IN 1
   
    #define OUT 0
   
    int main()
   
    {
   
    int nc,nw;
   
    int c;
   
    nw=0;nc=0;
   
    while((c=getchar())!=EOF)
   
    {
   
    ++nc;
   
    if(c==' '||c==' \n'||c=='\t‘)
   
    state = OUT;
   
    else if(state=OUT)
   
    {
   
    count++;
   
    state = IN;
   
    }
   
    printf(“%d %d %d”,“nw,nc”);
   
    return 0;
   
    }
   
    2、在理解上个例子的基础上,及理解状态state变化的思想。编写一个程序,使其以每行一个单词进行输出。
   
    程序如下:
   
    #include<stdio.h>
   
    #define IN 1
   
    #define OUT 0
   
    int main()
   
    {
   
    int c;
   
    int nw=0;
   
    while((c=getchar())!=EOF)
   
    {
   
    if(c==' '||c=='\t'||c=='\n’)
   
    {
   
    if(state==IN) //the end of word
   
    {
   
    printf(“\n”);
   
    state=OUT;
   
    }
   
    }
   
    else if(state==OUT)
   
    {
   
    putchar(c);
   
    state = IN;
   
    }
   
    else
   
    putchar(c);
   
    }
   
    }