输入一个字符串,请统计每个字符出现的次数。
the problem:输入一个字符串,请统计每个字符出现的次数。
输入格式:
只有一行,为一个长度不超过100000且只包含小写字母的字符串。
输出格式:
若干行,如果某个字符的出现次数大于0,则输出该字母及其出现的次数,具体格式看输出样例。输出顺序为字典序。
输入样例:
helloworld
输出样例:
d:1
e:1
h:1
l:3
o:2
r:1
w:1
my program:
#include<stdio.h>
#include<string.h>
int main()
{
char matrix;
gets(matrix);
int len = strlen(matrix);
int num1,num2,count = 0;
for(num1 = 97;num1 < 122;num1++)
{
count = 0;
for(num2 = 0;num2 < len;num2++)
{
if(matrix==num1)
{
count++;
}
}
if(count > 0)
{
printf("%c:%d\n",num1,count);
}
}
return 0;
} #include <stdio.h>
#include <string.h>
int main() {
char matrix;
gets(matrix);
int len = strlen(matrix);
int count = {0};
for (int i = 0; i < len; i++) {
count - 'a']++;
}
for (int i = 0; i < 26; i++) {
if (count[ i] > 0) {
printf("%c:%d\n", i + 'a', count[ i]);
}
}
return 0;
}
这个程序使用了一个长度为26的整型数组 count 来统计每个字符出现的次数。首先,对输入的字符串进行遍历,通过 matrix[ i] - 'a' 的方式将小写字母映射到0-25的范围内,然后对应位置的计数器加一。最后再遍历整型数组,输出出现次数大于0的字符及其出现的次数。 #include <stdio.h>
int main(void)
{
char matrix ;
int d = {0} , i ;
gets(matrix) ;
for(i = 0 ; matrix ; i ++) d - 'a'] ++ ;
for(i = 0 ; i < 26 ; i ++) if(d) printf("%c : %d\n" , 'a' + i , d) ;
}
页:
[1]