统计一个字符串中各个字符的百分比:
如输入字符串asdfs
a ----- 20%
s ----- 40%
d -----20%
f -----20%
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 1024
//asdfs
void count_num_char(char *src,int *output)
{
if(src == NULL)
{
printf("the string is empty\n");
exit(0);
}
char *dest = src;
while(*dest != '\0') //遍历字符串
{
output[*dest]++; //重复字符的处理方法,出现一次则加1
dest++;
}
}
int main()
{
char *src = NULL;
int target[256] = {0};
int i = 0;
int len = 0;
src = (char *)malloc(N*sizeof(char));
printf("please input your string \n");
scanf("%s", src);
len = strlen(src);
count_num_char(src,target);
for(i = 0;i < 256;i++)
{
if(target[i] != 0)
{
printf("%c:%.2f\%\n",i,(target[i] * 100.0) / len); //打印出数组里的字符并且计算出出现的次数百分比
}
}
free(src);
src = NULL;
return 0;
}