1 #include <stdio.h> 2 /* 3 题目:某字符串可能包含26个英文字母,可能包含6种符号,可能包含3个数字,统计他们出现的个数 4 解题思路:26个英文字母在ASCII表中是连续的,符号::,?!.< 这些符号在ASCII表中不是连续的。 数字:1 3 9 在ASCII表中也不是连续的。 5 那么可以自己定义一个表,让他们是连续的,然后提取字符串中的元素和表中的元素对比即可,如果相同,那么统计个数的数组元素++ 6 */ 7 int main(void) 8 { 9 char arr[35] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','3','9',';',',','?','!','.','<'}; 10 11 char *ptr = "dasdjqowidnzx,cnaks fdhq<weas!ajdlkasdajsl fl;asjdfljsdf1 ;3.9??"; 12 int arr1[35] = {0}; 13 14 int i; 15 16 while(*ptr) 17 { 18 for(i = 0;i<35;i++) 19 { 20 if(*ptr == arr[i]) 21 arr1[i]++; 22 } 23 ptr++; 24 } 25 26 for(i = 0;i<35;i++) 27 { 28 printf("%c有%d个 ",arr[i],arr1[i]); 29 } 30 31 32 33 return 0; 34 }