文章
6
粉丝
84
获赞
12
访问
7.0k
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int letter(char c){ //判断是否是字母
if( c>='a' && c<='z' ){
return 1;
}
if( c>='A' && c<='Z' ){
return 2;
}
else
return 0;
}
int main(){
char s[105];
while( gets(s)!=NULL ){
int count[200]={0};
int rnt=0,temp=0,number=0;
int len=strlen(s);
for(int i=0;i<len;i++){
if(letter(s[i])){ //扫描到字母,统计信标+1
rnt++;
}
if(!letter(s[i])){ //扫描到非字母时,把前面统计的字母数存入数组,并且重置统计信标
count[temp++]=rnt;
number++;
rnt=0;
}
}
for(int i=0;i<number;i++){
if(count>0)
printf("%d ",count[i]);
}
printf("\n");
}
}
登录后发布评论
解决了,没有考虑连续空格的情况,把扫到字母的那个if里面的判断写成