剥皮番茄 2022-03-08 23:31 采纳率: 90.2%
浏览 927
已结题

从键盘中任意输入一串字符,直至输入"#"字符代表结束.请编程统计输入的字符中的大写字母,小写字母和数字字符的个数分别是多少?

题目描述
从键盘中任意输入一串字符,直至输入"#"字符代表结束.请编程统计输入的字符中的大写字母,小写字母和数字字符的个数分别是多少?

输入
输入只有一行,包括一串字符.(长度小于20)
输出
输出只有一行(这意味着末尾有一个回车符号),包括3个整数。分别代表大写字符,小写字符和数字字符的个数。

样例输入 Copy
daDSALDdcada3240#
样例输出 Copy
5 7 4

  • 写回答

3条回答 默认 最新

  • 谛凌 2022-03-09 07:57
    关注

    参考:

    #include <iostream>
     
    using namespace std;
    int main()
    {
        char ch;
        int A=0,a=0,digit=0;
        cin>>ch;
        while(ch!='#')
        {
            if(ch>='0'&&ch<='9')digit++;
            if(ch>='a'&&ch<='z')a++;
            if(ch>='A'&&ch<='Z')A++;
            cin>>ch;
        }
        cout <<digit << ' ' << a << ' ' << A << endl;
        return 0;
     } 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • Code_流苏 C/C++领域优质创作者 2022-03-08 23:42
    关注

    代码如下,题主可作参考:

    #include<stdio.h>
    int main()
    {
        char ch;
        int A=0,a=0,digit=0;
        while((ch=getchar())!='#')
        {
            if(ch>='0'&&ch<='9')digit++;
            if(ch>='a'&&ch<='z')a++;
            if(ch>='A'&&ch<='Z')A++;
        }
        printf("%d %d %d\n",A,a,digit);
        return 0;
     } 
    
    
    评论 编辑记录
  • _GX_ 2022-03-09 00:47
    关注
    #include <iostream>
    #include <iterator>
    #include <ranges>
    
    using namespace std;
    
    int main()
    {
        int numUpperLetters = 0, numLowerLetters = 0, numDigits = 0;
        for (auto c : ranges::subrange(istream_iterator<char>(cin), istream_iterator<char>()))
        {
            if (c == '#')
                break;
            if (isupper(c))
                numUpperLetters++;
            else if (islower(c))
                numLowerLetters++;
            else if (isdigit(c))
                numDigits++;
        }
        cout << numUpperLetters << ' ' << numLowerLetters << ' ' << numDigits << endl;
        return 0;
    }
    
    $ g++ -Wall -std=c++20 main.cpp
    $ ./a.out
    daDASLDdcada3240#
    5 7 4
    
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月9日
  • 已采纳回答 3月9日
  • 创建了问题 3月8日

悬赏问题

  • ¥30 计算机网络子网划分路由模拟操作
  • ¥15 MATLAB的画图问题
  • ¥15 c语言用fopen_s成功打开文件之后闪退
  • ¥20 用C++完成,并且运用数组
  • ¥30 求解电力系统潮流计算结果不收敛问题
  • ¥15 某易易盾点选data解析逆向
  • ¥15 系统崩溃,关于订单的处理
  • ¥15 datax-web连接hive为数据源时发生报错,如何解决?
  • ¥15 plink在进行gwas分析时总读取不到表型
  • ¥20 数据结构与c语言的实践内容