题目:
本题目要求编写程序,输入一行字符,统计每个单词的长度。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:
输入给出一行字符。
输出格式:
在一行中输出每个单词的长度。每个数字后有一个空格。
输入样例:
How are you?
输出样例:
3 3 4
解:
#include<stdio.h>
#include<string.h>
int main(){
char a[1000];
gets(a);
int i=0,count=0,len=strlen(a);
int flag=0;//是空格的标志
int k=0;//记录空格数量,如果空格数等于字符串长度加一,则输出0
while(i<=len){
if(a[i]!=' '&&a[i]!='\n'&&a[i]!='\0'){//三个不等条件,缺一不可
count++;
i++;
flag=1;
}
else{
if(flag==1){
printf("%d ",count);
i++;
count=0;
}
else{
k++;//一直是空格,就一直加
i++;
count=0;
}
flag=0;
}
}
if(k==len+1){
printf("0 ");
}
return 0;
}
代码有点复杂,需要理解,但目前只想到这种解法能AC,固暂时写下,日后探讨。