实验6-10 统计单词的长度 (15 分)

该程序读取一行字符,通过链表结构统计每个单词的长度。输入一行字符后,程序将输出每个单词的长度,单词由空格分隔。示例输入'Howareyou?',输出为'334'。

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

实验6-10 统计单词的长度 (15 分)

本题目要求编写程序,输入一行字符,统计每个单词的长度。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:

输入给出一行字符。
输出格式:

在一行中输出每个单词的长度。每个数字后有一个空格。
输入样例:

How are you?
结尾无空行

输出样例:

3 3 4

#include<stdio.h>
#include<stdlib.h>
typedef struct ListNode{
    char data;
    struct ListNode *next;
}ListNode;
int main(){
    ListNode *head=(ListNode *)malloc(sizeof(ListNode));
    ListNode *tail;
    head->next=NULL;
    tail=head;
    char ch;
    scanf("%c",&ch);
    head->data=ch;
    int sum=0;
     scanf("%c",&ch);
    while(ch!='\n'){
        ListNode *p=(ListNode *)malloc(sizeof(ListNode));
        p->data=ch;
        p->next=NULL;
        tail->next=p;
        tail=p;
        scanf("%c",&ch);
    }
    tail->next=NULL;
    ListNode *t=head;
   // printf("%c",t->data);
   int tag=0;
   int tag2=0;
    while(t){
        if(t->data!=' '){
        	tag=1;
        	//printf("%c",t->data);
            sum++;
            tag2=1;
        }
        else{
        	if(tag==1)
            	printf("%d ",sum);
            sum=0;
            tag=0;
        }
        t=t->next;
    }
    if(tag==1)
   	 printf("%d ",sum);
   	 if(tag2==0)
   	 	printf("%d ",tag2);
    return  0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值