文章
6
粉丝
84
获赞
0
访问
4.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里面的判断写成