怎么统计输入的一个字符串中每个字母出现的次数?

 我来答
爱悦之平
推荐于2019-11-10 · TA获得超过1408个赞
知道答主
回答量:16
采纳率:83%
帮助的人:4238
展开全部
  1. 编写一个程序来统计字符串中每个字母出现的次数。

  2. 根据该思路,做个结构体,一个成员是字符,一个成员是出现个数。建立链表,对字串从头开始检查。一遇上小写字母即从表头开始核对,如果字符出现过,累加出现次数,如果没有该字符,在表尾建立新结点。

使用编写的程序如下:

  • /* 

  • * 需求:统计字符串中每个字母: 

  • * 说明:编写程序,提示用户输入一个字符串, 

  • * 然后统计字符串中每个字母出现的个数,忽略字母的大小写。 

  • *  

  • * 原理: 

  • * 1.使用String类中的toLowerCase()方法,将字符串中的大写字母转换成小写形式。 

  • * 2.构造一个具有26个int值得数组ch ,每个元素记录一个字母出现的次数。 

  • *  即,ch[0]记录a的个数,ch[1]记录b的个数。 

  • * 3.对字符中的每一个字符,判断其是否小写字母,如果是,则数组中的相应计数器加1. 

  • *  

  • * */  

  • ublic class CountEachLetter {  

  • /** 

  • * @param args 

  • */  

  • public static void main(String[] args) {  

  • // TODO Auto-generated method stub  

  • String str = JOptionPane.showInputDialog("Please Enter a string: ");  

  • int[] counts = countLetters(str.toLowerCase());  

  • String out = "";  

  • for(int i=0;i<counts.length;i++)  

  • {  

  • if(counts[i]!=0)  

  • //              out += (char)('a'+i)+"  appears"+counts[i]+((counts[i]==1)?"time\n":"times\n");  

  • out +=(char)('a'+i)+":出现了"+counts[i]+"次.\n";  

  • }  

  • JOptionPane.showMessageDialog(null, out);  

  • }  

  • public static int[] countLetters(String s)  

  • {  

  • int[] ch = new int[26];  

  • for(int i=0;i<s.length();i++)  

  • {  

  • if(Character.isLowerCase(s.charAt(i)))  

  • ch[s.charAt(i)-'a']++;//  

  • }  

  • return ch;  

  • }  

  • }  

可爱小不点year
2017-09-02 · TA获得超过803个赞
知道小有建树答主
回答量:859
采纳率:89%
帮助的人:785万
展开全部
#include <stdio.h>
int main()
{
int cnt[128]={0};//用来统计个数。
char str[200];//存储字符串。
int i;
gets(str);//输入字符串。
for(i = 0; str[i]!='\0'; ++i)//遍历字符串。
cnt[str[i]]++;//统计个数。
for(i=0;i<128; i ++)//遍历统计到的值。
if(cnt[i]!=0)//如果出现过则打印值,及个数。
printf("%c:%d\n", i, cnt[i]);//输出结果。
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式