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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么统计输入的一个字符串中每个字母出现的次数?相关的知识,希望对你有一定的参考价值。

    编写一个程序来统计字符串中每个字母出现的次数。

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

使用编写的程序如下:

    /* 

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

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

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

    *  

    * 原理: 

    * 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;  

      

     

参考技术A #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;

字母统计

题目描述

输入一行字符串,计算其中A-Z大写字母出现的次数

输入描述:

案例可能有多组,每个案例输入为一行字符串。

输出描述:

对每个案例按A-Z的顺序输出其中大写字母出现的次数。

分析:

对每一个出现的字符用数组count[26]的一个元素统计

#include <iostream>
#include <string>
#include <stdio.h>

using namespace std;

int main(){
    string str;
    int count[26];
    for(int i = 0; i < 26; i++)
        count[i] = 0;
    while(cin >> str){
        for(int i = 0; i < str.size(); i++){
            if(str[i] >= ‘A‘ && str[i] <= ‘Z‘)
                count[str[i] - ‘A‘]++;
        }
        for(int i = 0; i < 26; i++){
           printf("%c:%d
", ‘A‘ + i, count[i]);
            //cout << ‘A‘ + i << ":" << count[i] << endl;
        }
    }
    return 0;
}

以上是关于怎么统计输入的一个字符串中每个字母出现的次数?的主要内容,如果未能解决你的问题,请参考以下文章

c语言编程。从标准输入设备上输入一个字符串,分别统计其中每个数字,空格,字母及其他字符出现的次数。

Java获取字符串中字母出现的个数

C语言,输入一个字符串,统计重复出现某个字母的次数。

C语言编程:输入一串英文字母,统计每个字母(不区分大小写)出现的次数

字母统计

在控制台输入一串英文字符,然后统计出每个字母出现的次数忽略大小写