本帖最后由 Lion-R 于 2016-7-24 23:28 编辑
统计字符串中每个字符出现的次数. char* str = "&abcldotreABorpffr**^%#$@@@@#$&*(dadcxzczaquoerppv";
提示: 思路:同样遍历字符串的每个字符,先判断当前字符在这之前有没有出现过.如果有,说明前面出现时已经统计过了,不需要重复统计;如果前面没有出现过,说明这是第1次出现,这时再遍历找出当前位置后的所有字符中,该字符出现的次数.累加. // 实现 char* str = "&abcldotreABorpffAr**^%#$@@@@#$&*(dadcxzczaquoerppv"; unsigned long len = strlen(str); // char* test = "abcdsdeafdafadds"; // 计数器 int count = 0; // 遍历字符串.拿到每个字符 for (int i = 0; i < len; i++) { count = 1; int flag = 0; // 判断在这之前有没有出现过该字符 for (int j = 0; j <= i-1; j++) { // 判断字符是否相等 // str str[j] if (str == str[j]) { flag = 1; } } if (flag == 1) { continue; } // 循环遍历当前字符i后面的所有字符中出现的次数 for (int k = i+1; k < len; k++) { if (str[k] == str) { count++; } if (k == len - 1) { printf("%c 出现了%d次\n", str, count); } } } } return 0; } } |