我的代码如下,c语言,利用循环,for里面是几个条件,分别是开头大写,结尾大写,单个大写,连续大写,包含数字的判断
#include <stdio.h>
#include <string.h>
int main(){
char a[1000];
int i=0,b[5],n=0,flag=0,j=0;
for(i=0;i<5;i++){
b[i]=0;
}
scanf("%d",&n);
getchar();
gets(a);
for(i=0;i<strlen(a);i++){
if(a[i]=='.' || a[i]=='!' || a[i]=='?'){
j++;
}
if( (a[i]>='A' && a[i]<='Z') && (i==0 || a[i-1]=='.' || a[i-1]=='!' || a[i-1]=='?' || a[i-1]==' ' ) ){
flag=1;
}
if( (a[i]<'A') || (a[i]>'Z' && a[i]<'a' ) || ( a[i]>'z' ) ) flag=0;
if(flag==1 && (a[i+1]<='Z' && a[i+1]>='A' ) ) flag=0;
if(flag==1 && (a[i+1]=='.' || a[i+1]=='!' || a[i+1]=='?' || a[i+1]==' ') ){
b[j]++;
flag=0;
}
}
for(i=0;i<j;i++){
if(flag==1) printf("\n");
else flag=1;
printf("%d",b[i]);
}
}
谢谢大佬