方法一:(极其复杂)
#include <stdio.h>
int main(){
int len=0,i=0,flag=1,tag=0;
char c,s[100];
while(i<100){
scanf("%c",&c);
s[i]=c;
if(c=='.')
break;
i++;
}
for(int j=0;j<i;j++){
if(s[j]!=' '){
len++;
flag=1;
}
else if(flag&&s[j]==' '&&s[j+1]!=' '&&s[j+1]!='.'&&len>0){
printf("%d ",len);
len=0;
flag=0;
}
}
if(len>0)
printf("%d",len);
return 0;
}
方法二:
#include <stdio.h>
int main(){
int len=0;
char c;
int head=1; //是否第一个单词;
while((c=getchar())!='.'){
if(c!=' ')
len++;
else if(len>0){
if(head){ //遇到第一个单词,要修改head标识
printf("%d",len);
head=0;
}
else //不是第一个单词,中间添加空格
printf(" %d",len);
len=0;
}
}
if(len>0&&head) //如果只有一个单词(且为第一个单词)
printf("%d",len);
else if(len>0) //不止一个单词,同时最后的'.'前不是空格
printf(" %d",len);
return 0;
}