中M2019春C入门和进阶练习 7-179 单词长度 (15 分)

你的程序要读入一行文本,其中以空格分隔为若干个单词,以.结束。你要输出每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如it's算一个单词,长度为4。注意,行中可能出现连续的空格;最后的.不计算在内。

输入格式:

输入在一行中给出一行文本,以.结束

提示:scanf("%c",...);来读入一个字符,直到读到.为止。

输出格式:

在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。

输入样例:

It's great to see you here.

输出样例:

4 5 2 3 3 4

#include<stdio.h>        
int main(){                //行末似乎要求换行
    int l=0,p=0,k=1;     //l记录当前单词长度,p为前面是否有输出标志,k为整个文本是否存在单词
    char t;
    scanf("%c",&t);
    while(t!='.'){
        if(t!=' '){    //t不为.且不是空格时长度加一
            l++;
        }else if(l!=0){        //t为空格时如果当前单词长度不为0考虑输出
            if(p){            //前面有输出了加上空格
                printf(" %d",l);
            }else{            //输出的第一个长度
                printf("%d",l);
                p=1;
            }
            k=0;        //整个文本有输出即存在单词
            l=0;        //一个单词结束了
        }
        scanf("%c",&t);
    } 
    if(l!=0 &&!k){        //控制.左边紧邻的第一个单词长度输出格式
        printf(" %d\n",l);
    }else if(l!=0 &&k){
        printf("%d\n",l);
    }else if(l==0){
        printf("\n");
    }else if(k){
        printf("0\n");
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/Great_Linlin/article/details/89435591
今日推荐