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个\n",arr[i],arr1[i]);
29 }
30
31
32
33 return 0;
34 }