• 【2049】字符个数


    Time Limit: 1 second
    Memory Limit: 2 MB

    问题描述
    
    输入一串字符串,分别统计数字、大小写字母和其他字符的个数,最后以“?”结束。(其他字符不包含"?")
        
    
    
      
    
     
    

    Input

    一行,一个字符串,以“?”结束。

    Output

    三行,分别显示三种字符的个数

    Sample Input

    2s0d3s<5?
    
    

    Sample Output

    letter:3
    digit:4
    other:1
    

    【题解】

    用一个while 一个 变量i 就可以了。一直扫描到问号,之前的字符和数字用if判断一下就可以了。a[1..3]数组 用来存取各个不同的类型的数据的数量。

    【代码】

    #include <cstdio>
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    string s1;
    int a[4]; //a[1..3]分别表示字母,数字 ,其他
    
    void input_data()
    {
        char a[300];
        cin.getline(a,300); //怕有空格直接整行读取
        s1 = string(a);
        for (int i = 1;i <= 3;i++)
            a[i] = 0;
    }
    
    void get_ans()
    {
        int i = 0;
        while (s1[i] != '?')
            {
                if (s1[i] >= '0' && s1[i] <= '9') //这里是判断数据的类型
                    a[2]++;
                        else
                            if ((s1[i] >= 'A' && s1[i] <='Z' )|| (s1[i] >= 'a' && s1[i] <= 'z'))
                                a[1]++;
                                    else
                                        a[3]++;
                i++;
            }
    }
    
    void output_ans()
    {
        printf("letter:%d
    ",a[1]);
        printf("digit:%d
    ",a[2]);
        printf("other:%d",a[3]);
    }
    
    int main()
    {
        //freopen("F:\rush.txt","r",stdin);
        input_data();
        get_ans();
        output_ans();
        return 0;
    }
    
  • 相关阅读:
    shmget() 建立共享内存
    [转]SQL2005 连接问题处理
    [转]工作以后十不要,自勉
    C#学习笔记
    一位软件工程师6年总结(转)
    时间相关处理
    Litter Tips
    [转] VS打开解决方案时报错的处理方法
    面向对象—设计模式
    SQL Server 2000中的错误
  • 原文地址:https://www.cnblogs.com/AWCXV/p/7632460.html
Copyright © 2020-2023  润新知