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

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

你应该是想要这种 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

#include <stdio.h>
int main()
{
      char a[1000];
      gets(a);
      int n=0;
      int k=0,s=0,z=0,q=0;
      do
      {
            if((a[n]>='a' && a[n] <= 'z') || (a[n]>='A' && a[n] <= 'Z'))
                  z++;
            else if(a[n]>='0' && a[n] <= '9')
                  s++;
            else if(a[n] == ' ')
                  k++;
            else
                  q++;
            n++;
      }while(a[n] != '\0');
      printf("字符:%d,数字:%d,空格:%d,其它:%d\n",z,s,k,q);
      return 0;
}