57. 两种统计字符出现次数的方法

1.算术表达式匹配下标法 ,用于 “要统计的所有种字符,它们在ASCII码中值是连续的“的情况。

代码略

2.建下标匹配表法,用于不连续的情况。

 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 }

猜你喜欢

转载自www.cnblogs.com/ZhuLuoJiGongYuan/p/9549587.html
今日推荐