C++实现统计字符串中字符频率

需积分: 39 7 下载量 184 浏览量 更新于2024-09-08 收藏 1KB TXT 举报
"计算字符中不同字符出现的次数" 该程序设计了一个名为`frequency`的算法,用于统计输入字符串中各个不同字符出现的频率。它适用于处理大小写字母,并将大写字母转换为小写字母进行计数,确保大小写不区分。程序使用了C++语言编写。 首先,定义了两个数组:`ch`用于存储不同的字符,`num`用于存储对应字符的出现次数。`MAX`被定义为100,表示字符串的最大长度。在`frequency`函数中,通过两重循环遍历字符串: 1. 外层循环`for(i=0; s[i]!='\0'; i++)`逐个检查字符串中的每个字符。 2. 内层循环`for(j=0; j<n; j++)`用来比较当前字符是否已经在`ch`数组中出现过。如果找到了相同的字符或大小写的对应关系(例如,大写字母与小写字母之间相差32),则跳出内层循环。 如果在内层循环中找到了匹配项,即`j<n`,则增加`num[j]`的值,表示该字符出现次数加一。若未找到匹配项,表示遇到新的字符,此时: - 如果是大写字母,将其转换为小写字母`ch[j]=s[i]+32`,然后添加到`ch`数组中。 - 否则,直接将字符`s[i]`添加到`ch`数组中。 并且,将字符计数`n`加一。 在`frequency`函数结束前,遍历`num`数组,打印出每个字符及其对应的出现次数,格式为:`'\x' count`,其中`\x`代表字符,`count`是该字符的出现次数。 在`main`函数中,用户可以输入一个字符串,然后调用`frequency`函数来计算字符频率。程序使用`getchar()`读取用户输入直到遇到换行符,然后在字符串末尾添加`\0`作为字符串结束标志。最后,调用`frequency(s)`并暂停程序执行,以便用户查看结果。 这个程序可以作为基础,用于进一步扩展,例如,增加对其他字符类型的处理(如数字、标点符号等),或者优化性能,以处理更大的字符串。同时,这个程序也提供了一个理解和实践字符计数问题的实例。