• 习题8-9 分类统计各类字符个数(15 分)


    本题要求实现一个函数,统计给定字符串中的大写字母、小写字母、空格、数字以及其它字符各有多少。

    函数接口定义:

    void StringCount( char *s );
    

    其中 char *s 是用户传入的字符串。函数StringCount须在一行内按照

    大写字母个数 小写字母个数 空格个数 数字个数 其它字符个数
    

    的格式输出。

    裁判测试程序样例:

    #include <stdio.h>
    #define MAXS 15
    
    void StringCount( char *s );
    void ReadString( char *s ); /* 由裁判实现,略去不表 */
    
    int main()
    {
        char s[MAXS];
    
        ReadString(s);
        StringCount(s);
    
        return 0;
    }
    
    /* Your function will be put here */
    

    输入样例:

    aZ&*?
    093 Az
    

    输出样例:

    2 2 1 3 4
    
    #include <string.h>
    
    void StringCount( char *s )
    
    {
    
        int cap=0,low=0,bla=0,num=0,els=0,i,n;
    
        n=strlen(s);
    
        for(i=0;i<n;i++)
    
        {
    
            if(s[i]>='A'&&s[i]<='Z')
    
                cap++;
    
            else if(s[i]>='a'&&s[i]<='z')
    
                low++;
    
            else if(s[i]==' ')
    
                bla++;
    
            else if(s[i]>='0'&&s[i]<='9')
    
                num++;
    
            else
    
                els++;
    
        }
    
        printf("%d %d %d %d %d",cap,low,bla,num,els);
    
    }

    优化下

    void StringCount( char *s )
    
    {
    
        int cap=0,low=0,bla=0,num=0,els=0,i=0;
    
     
    
        while(s[i]!='')
    
        {
    
            if(s[i]>='A'&&s[i]<='Z')
    
                cap++;
    
            else if(s[i]>='a'&&s[i]<='z')
    
                low++;
    
            else if(s[i]==' ')
    
                bla++;
    
            else if(s[i]>='0'&&s[i]<='9')
    
                num++;
    
            else
    
                els++;
    
            i++;
    
        }
    
        printf("%d %d %d %d %d",cap,low,bla,num,els);
    
    }
  • 相关阅读:
    十大开源CRM
    编码转换与网址解码
    1、ADO.NET相关对象一句话介绍
    接口与抽象类对比
    C#中的文件下载问题
    在WinForm下获取粘贴板中HTML格式的数据
    Exchange学习
    用Log Explorer恢复数据的基本操作
    iframe的问题
    再发一个C#版的日历
  • 原文地址:https://www.cnblogs.com/2228212230qq/p/9268675.html
Copyright © 2020-2023  润新知