8.8 输入一行文字,找出其中大写字母,小写字母,空格,数字以及其他字符各有多少

8.8 输入一行文字,找出其中大写字母,小写字母,空格,数字以及其他字符各有多少

个人代码如下

#include
int main()
{
        char a[50];
        gets(a);
    void fun(char *a,int (*p)(char *s));
    int big(char *s);
    int small(char *s);
    int space(char *s);
    int number(char *s);
    int other(char *s);
    
    fun(a,big);
    fun(a,small);
    fun(a,space);
    fun(a,number);
    fun(a,other);
    }
// 功能函数
void fun(char *a,int (*p)(char *s))
{
    printf("%d",(*p)(a));
}
//统计大写函数
 int big(char *s)
{
    int i;
    for (i=0;*s!='\0';s++)
    {
        if(*s>='A'&&*s<='Z')
            i++;
    }
    printf(" Big=");
    return i;
}
//统计小写函数
int small(char *s)
{
    int i;
    for (i=0;*s!='\0';s++)
    {
        if(*s>='a'&&*s<='z')
            i++;
    }
    printf(" small=");
    return i;
}
//统计空格函数
int space(char *s)
{
    int i;
    for (i=0;*s!='\0';s++)
    {
        if(*s==' ')
            i++;
    }
    printf(" space=");
    return i;
}
//统计数字函数
int number(char *s)
{
    int i;
    for (i=0;*s!='\0';s++)
    {
        if(*s>='0'&&*s<='9')
            i++;
    }
    printf(" number=");
    return i;
}
//统计其他字符函数
int other(char *s)
{
    int i;
    for (i=0;*s!='\0';s++)
    {
        if((*s<='0'&&*s>='9')&&(*s<='z'&&*s>='a')&&(*s<='Z'&&*s>='A')&&(*s!=' '))
            i++;
    }
    printf(" other=");
    return i;
}

你可能感兴趣的:(c语言程序设计(第四版),谭浩强,第八章答案)