首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言問答

C語言統計輸入字串中各字母出現次數

     編輯:C 語言問答

需求:統計英文字母頻率(忽略大小寫、非字母字元)

輸入範例:abb cccd eefff
輸出範例:a=1,b=2,c=3,d=1,e=2,f=3

演算法思路

  1. 建立大小 26 的整數陣列 cnt[26] = {0}。
  2. 逐字元讀取輸入(getchar 或 fgets),若為字母 (isalpha),轉小寫 (tolower) 後對應索引遞增。
  3. 遍歷陣列,輸出計數 > 0 的字母。

完整程式碼

#include <stdio.h>
#include <ctype.h>

int main()
{
    int cnt[26] = {0};
    int ch;

    while ((ch = getchar()) != EOF) {
        if (isalpha(ch)) {
            cnt[tolower(ch) - 'a']++;
        }
    }

    int first = 1;
    for (int i = 0; i < 26; i++) {
        if (cnt[i] > 0) {
            if (!first) putchar(',');
            printf("%c=%d", 'a' + i, cnt[i]);
            first = 0;
        }
    }
    putchar('\n');
    return 0;
}

執行示例

$ ./a.out
abb cccd eefff
a=1,b=2,c=3,d=1,e=2,f=3
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved