C语言统计字符串字母频率

方法一:

#include<stdio.h>
#include<string.h>
int main()
{
    char str[2000];
    int i,num[256]={0};//必须初始化num数组。
    printf("please input string\n");
    scanf("%s",str);
    for(i=0;i<strlen(str);i++)
        num[str[i]]++; //巧用字符的ASCII数值,char类型和整形的思考。
    for(i=0;i<256;i++)
        if(num[i]>0)
            printf("字符%c出现的频率为%d次\n",(char)i,num[i]);
    return 0;
}

 二、C语言实现库函数strlen()

#include<stdio.h>
#include<string.h>
int my_strlen(char *string)
{    int i=0;
    while(*string!='\0')
    {
        string++;
        i++;
    }
    return i;
}
int main()
{
    printf("my_strlen(**)=%d\n",my_strlen("erwerwer"));
    return 0;
}

 三、递归实现my_strlen()

#include<stdio.h>

int my_strlen(char *string)
{    
    if('\0'==*string) return 0;//'\0'写在前面,防止把==错误写成赋值“=”。本文就犯了这样的错误,一直得不到正确的结果,查了半天发现是等号误写成了赋值符号
    return 1+my_strlen(string+1);
}
int main()
{
    printf("my_strlen(**)=%d\n",my_strlen("erwerwer"));
    return 0;
}

 

posted @ 2021-02-16 16:56  UNkey  阅读(1039)  评论(0)    收藏  举报