...其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个...
发布网友
发布时间: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;
}