输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数。
数据范围:输入的字符串长度满足
#include <ctype.h> #include <stdio.h> int main() { char c; int cnt_alpha = 0; int cnt_num = 0; int cnt_blank = 0; int cnt_oth = 0; while ((c = getchar()) != EOF) { if(isalpha(c)){ cnt_alpha++; }else if(isdigit(c)){ cnt_num++; }else if(isblank(c)){ cnt_blank++; }else if('\n' == c){ continue; }else{ //printf("[%c]\n",c); cnt_oth++; } } printf("%d\n", cnt_alpha); printf("%d\n", cnt_blank); printf("%d\n", cnt_num); printf("%d\n", cnt_oth); return 0; }
#include <stdio.h> # include<string.h> int main() { int a[4] = {0};char s[1001] = {'\0'}; gets(s); for(int i = 0;s[i] != '\0'; i++){ if(islower(s[i]) || isupper(s[i])) a[0]++; else if(s[i] == 32) a[1]++; else if(47<s[i] && s[i]<58) a[2]++; else a[3]++; } for(int i = 0; i<4; i++) printf("%d\n",a[i]); return 0; }
#include <stdio.h> int main(void) { char str[1000], *p, word[128] = {0}; int e = 0, d = 0, s = 0, o = 0, i; while(scanf("%s,", str) != EOF) { p = str; do { word[*p]++; o++; }while(*(++p)); word[0]++; } for(i = 'A'; i <= 'Z'; i++) e += word[i] + word[i + 32]; for(i = '0'; i <= '9'; i++) d += word[i]; printf("%d\r\n%d\r\n%d\r\n%d", e, word[0] - 1, d, o - e - d); }
#include <stdio.h> #define N 1000 int main() { char str[N]; int letter=0,space=0,number=0,other=0,i=0; gets(str); while(str[i]!='\0') { if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')) { letter++; } else if(str[i]==' ') { space++; } else if(str[i]>='0'&&str[i]<='9') { number++; } else { other++; } i++; } printf("%d\n%d\n%d\n%d\n",letter,space,number,other); return 0; }
#include<stdio.h> #include<string.h> int main() { char str[1001] = {'\0'}; while (gets(str)) { int len = strlen(str); int charac = 0, blank = 0, num = 0, other = 0; for (int i = len - 1; i >= 0; i--) { //字母计数(区分大小写) if ((('a' <= str[i])&&(str[i] <= 'z')) || (('A' <= str[i])&&(str[i] <= 'Z'))) charac++; else if (str[i] == ' ') blank++; //空格计数 else if (('0' <= str[i]) && (str[i] <= '9')) num++; //数字计数 else other++; //其他字符计数 } printf("%d\n%d\n%d\n%d\n", charac, blank, num, other); } }
#include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { char str[256] = {0}; char *p = NULL; int space = 0; int alpha = 0; int num = 0; int eth = 0; gets(str); p = str; while (*p != '\0') { if(*p == 32) { space++; } else if ((*p >= 'a' && *p <= 'z') || (*p >= 'A' && *p <= 'Z')) { alpha++; } else if (*p >= 48 && *p <= 57) { num++; } else { eth++; } p++; } printf("%d\n%d\n%d\n%d\n", alpha, space, num, eth); return 0; }
无难度的题 #include<stdio.h> int main(){ char in[500]; while (gets(in)) { int yw=0, kg=0, sz=0, qt=0; for (int i = 0; i < strlen(in); i++) { if (in[i] == ' ') { kg++; } else if ((in[i] >= 'A' && in[i] <= 'Z') || in[i] >= 'a' && in[i] <= 'z') { yw++; } else if (in[i] >= '0' && in[i] <= '9') { sz++; } else { qt++; } } printf("%d\n%d\n%d\n%d\n", yw, kg, sz, qt); } }