搜索

...其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个...

发布网友 发布时间:2024-10-23 18:30

我来回答

2个回答

热心网友 时间:2024-11-18 02:22

scanf 是 一个字符 一个字符地 按%c格式读一个字符,这样读输入流,直到遇到点号,循环结束,感觉上是读入了一个字符串。
每一次 while(1) 的循环,只读入1个字符,并作判断:如果是 点号则结束;如果是空格则统计和输出上一个字符长度,计数器清0;如果是一般字符则长度计数加1。
你的程序 声明int i; 要写成 int i=0; 带初始化,否则第一个词的长度可能会有问题。

热心网友 时间:2024-11-18 02:19

#include<stdio.h>
#include<string.h>
int main()

{
char s1[100]={0 };

scanf("%s",s1);
if((strlen(s1)-1)!=0){ // 保证仅仅输入'.'时无输出
while(strrchr(s1,'.')==NULL){
printf("%d ",strlen(s1));
scanf("%s",s1);
}
printf("%d",(strlen(s1)-1));
}

return 0;
}
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top