How to count the frequency of the digits (0 to 9) in a string with C

1 Answer

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

void countDigits(const char* s) {
    if (s == NULL) {
        printf("String is empry");
        return;
    }

    int digit_frequency[10] = { 0 }; 

    int i = 0;
    while (s[i] != 0) {
        if (isdigit(s[i])) {
            digit_frequency[s[i] - '0']++;
        }
        i++;
    }

    for (int i = 0; i < 10; i++) {
        printf("%d: %d times\n", i, digit_frequency[i]);
    }
}


int main(void)
{
    char s[] = "c23c++4523java23988rust82215";

    countDigits(s);

    return 0;
}





/*
run

0: 0 times
1: 1 times
2: 5 times
3: 3 times
4: 1 times
5: 2 times
6: 0 times
7: 0 times
8: 3 times
9: 1 times

*/

 



answered Jun 1, 2023 by avibootz
...