求大佬指教 2021-10-12 08:04 采纳率: 78.6%
浏览 159
已结题

do- while格式写1.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

do- while格式写1.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

  • 写回答

2条回答 默认 最新

  • 胸毛男 2021-10-12 08:36
    关注

    你应该是想要这种 do while 输入的
    总有一个 其他 其他是回车

    
    #include "stdafx.h"
    
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        printf("请输入一行字符!\n");
        char Buf[WCHAR_MAX] = {'\0'};
        int ipos = -1;
        do
        {
            ipos++;
            scanf_s("%c", &Buf[ipos]);
    
        } while (Buf[ipos]!='\n');
    
        int iZiMu_KongGe_ShuZi_QiTa[4] = { 0 };
        for (int i = 0; i < ipos+1; i++)
        {
            if ((Buf[i] >= 'a' && Buf[i] <= 'z') || (Buf[i] >= 'A' && Buf[i] <= 'A'))// 字母
            {
                iZiMu_KongGe_ShuZi_QiTa[0]++;
            }
            else if (Buf[i]==' ')// 空格
            {
                iZiMu_KongGe_ShuZi_QiTa[1]++;
            }
            else if ((Buf[i] >= '0' && Buf[i] <= '9'))// 数字
            {
                iZiMu_KongGe_ShuZi_QiTa[2]++;
            }
            else// 其他
            {
                iZiMu_KongGe_ShuZi_QiTa[3]++;
            }
        }
    
        printf("输入为%s\n", Buf);
    
        printf("英文字母 %d个,空格 %d个,数字 %d个,其他%d个\n", 
            iZiMu_KongGe_ShuZi_QiTa[0], 
            iZiMu_KongGe_ShuZi_QiTa[1], 
            iZiMu_KongGe_ShuZi_QiTa[2],
            iZiMu_KongGe_ShuZi_QiTa[3] );
    
        _tsystem(L"pause");
        return 0;
    }
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月20日
  • 已采纳回答 10月12日
  • 创建了问题 10月12日