A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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;
    }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马