## C语言:输入一行字符,分别统计其中英文字母,空格,数字和其他数字的个数
-
//直接字符查找 #include <stdio.h> #include <string.h> int main(){ int num=0; int letter=0; int space=0; int others=0; char string[99]; gets(string); int l=strlen(string); for(int i;i<l;i++){ char temp=string[i]; if(temp>='0' && temp<='9') num++; else if((temp>='a' && temp<='z')||(temp>='A' && temp<='Z')) letter ++; else if(temp==' ') space++; else others++; } printf("num=%d ,letter=%d ,space=%d ,others=%d",num,letter,space,others); return 0; }
第二种方法
-
//ASCII 码 #include <stdio.h> #include <string.h> int main(){ int num=0; //数字个数 int letter=0; //字母个数 int space=0; //空格个数 int others=0; //其他 char str[100]; gets(str); //之前用的scanf("%s",str);在空格之后,无法判断之后的 //int l=strlen(str); //在空格之后的字符无法测出 char c; for(int i=0;(c=str[i]!='\0');i++){ //只要字符不是'\0',继续执行 int temp=str[i]; if(temp>=48 && temp<=57) num++; else if((temp>=65 && temp<=90) || (temp>=97 && temp<=122))letter++; else if(temp==32) space++; else others++; } printf("num=%d ,letter=%d ,space=%d ,others=%d",num,letter,space,others); return 0; }