57. 两种统计字符出现次数的方法
Posted zhuluojigongyuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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个 ",arr[i],arr1[i]); 29 } 30 31 32 33 return 0; 34 }
以上是关于57. 两种统计字符出现次数的方法的主要内容,如果未能解决你的问题,请参考以下文章