VC++6.0 一个四位数(0000~9999) 分别输出各个数位的数#include "iostream.h"int main(){int a,b,c,d,m;cout

问题描述:

VC++6.0 一个四位数(0000~9999) 分别输出各个数位的数
#include "iostream.h"
int main()
{
int a,b,c,d,m;
cout

怕越界,改成字符串来接收输入的值了,简单代码如下:

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

测试结果: