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;
}
#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;
}