Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Đếm tần suất mỗi ký tự trong chuỗi C


Thuật toán

  1. Định nghĩa MAX kích thước chuỗi.
  2. Nhập chuỗi.
  3. Khởi tạo mảng frequency[26] = 0 (chỉ đếm chữ cái a-z, A-Z).
  4. Duyệt chuỗi: nếu 'a'-'z' → freq[ch-'a']++; nếu 'A'-'Z' → freq[ch-'A']++.
  5. In các ký tự có freq > 0.

Chương trình

#include <stdio.h>
#include <string.h>
#define MAX 100
int main() {
    char str[MAX];
    int freq[26] = {0}, i, len;
    printf("Nhap chuoi: "); gets(str);
    len = strlen(str);
    for (i = 0; i < len; i++) {
        if (str[i] >= 'a' && str[i] <= 'z')
            freq[str[i] - 'a']++;
        else if (str[i] >= 'A' && str[i] <= 'Z')
            freq[str[i] - 'A']++;
    }
    printf("\nTan suat ky tu:\n");
    for (i = 0; i < 26; i++)
        if (freq[i] != 0)
            printf("'%c' = %d\n", 'a' + i, freq[i]);
    return 0;
}

Kết quả

Nhap chuoi: Tutorials Point
Tan suat ky tu:
'a' = 1
'i' = 2
'l' = 1
'n' = 1
'o' = 2
'p' = 1
'r' = 1
's' = 1
't' = 3