怕越界,改成字符串来接收输入的值了,简单代码如下:
#include <stdio.h>
#include <string.h>
// 判断字符串中是否为四位数.
bool Is4WeiShu(const char* szNum)
{
if (NULL == szNum)
return false;
int nLen = strlen(szNum);
if (nLen != 4)
return false;
for (int i=0; i<nLen; ++i)
{
if (szNum[i]<'0' || szNum[i]>'9')
return false;
}
return true;
}
void main()
{
printf("请输入一个四位数(0000~9999):");
char szBuf[256] = {0};
scanf("%s", szBuf);
bool bRet = Is4WeiShu(szBuf);
if (!bRet)
{
printf("输入的不是四位数!\n");
return;
}
const char* szFlag[] = {"千", "百", "十", "个"};
int nSize = sizeof(szFlag)/sizeof(const char*);
int nLen = strlen(szBuf);
for (int i=0; i<nLen&&i<nSize; ++i)
{
printf("%s位上的数是:%c\n", szFlag[i], szBuf[i]);
}
}
测试结果: