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

Tìm ký tự xuất hiện nhiều nhất trong chuỗi C


Đếm tần suất từng ký tự (ASCII 0-255), tìm max.

Thuật toán

freq[256] = {0};
for each char c in string: freq[(int)c]++
max_char = argmax(freq)

Chương trình

#include <stdio.h>
#define SIZE 100
#define CHARS 256
int main() {
    char str[SIZE];
    int freq[CHARS] = {0}, i = 0, max_char = 0;
    printf("Nhap chuoi: "); gets(str);
    while (str[i] != '\0') {
        freq[(int)str[i]]++;
        i++;
    }
    for (i = 0; i < CHARS; i++)
        if (freq[i] > freq[max_char]) max_char = i;
    printf("Ky tu '%c' xuat hien nhieu nhat: %d lan", max_char, freq[max_char]);
    return 0;
}

Kết quả

Nhap chuoi: tutorials point
Ky tu 't' xuat hien nhieu nhat: 3 lan