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