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

本文介绍了一个使用C语言编写的程序,该程序能够读取一行包含多个单词的文本,并输出每个单词的长度。程序通过逐字符扫描并利用条件判断,有效地区分单词和空格,准确地计算出每个单词的长度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

你的程序要读入一行文本,其中以空格分隔为若干个单词,以.结束。你要输出每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如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;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值