C程序来查找字符串中每个数字的频率

假设我们有一个字符串 s。s 包含字母和数字。我们必须找到每个数字的频率并显示它们。为此,我们可以为每个数字(0 到 9)创建一个大小为 10 的数组,最初数组中的所有元素都是 0,然后当我们遇到一个数字时,只需增加该索引的值,最后将它们全部打印出来。

因此,如果输入类似于 s = "we85abc586wow236h69",那么输出将是 (Number 2, Freq 1) (Number 3, Freq 1) (Number 5, Freq 2) (Number 6, Freq 3) (Number 8,频率 2)(数字 9,频率 1)

示例

让我们看看以下实现以获得更好的理解 -

#include <stdio.h>

#include <string.h>

void solve(char *s){

    int freq[10] = {0};

    for(int i = 0; i < strlen(s); i++){

        if(s[i] >= '0' && s[i] <= '9'){

            freq[s[i] - '0']++ ;    

        }

    }

    for(int i = 0; i<10; i++){

        if(freq[i] > 0)

            printf("(Number %d, Freq %d)\n", i, freq[i]);

    }

}

int main(){

    char *s = "we85abc586wow236h69";

    solve(s);

}

输入

"we85abc586wow236h69"
输出结果
(Number 2, Freq 1)

(Number 3, Freq 1)

(Number 5, Freq 2)

(Number 6, Freq 3)

(Number 8, Freq 2)

(Number 9, Freq 1)

以上是 C程序来查找字符串中每个数字的频率 的全部内容, 来源链接: utcz.com/z/345686.html

回到顶部