C语言如何判断,输入的是数字。如果不是则输出重新输入的信息。 如不能输入12B. 25L只

C语言如何判断,输入的是数字。如果不是则输出重新输入的信息。 如不能输入12B. 25L只能输入纯数字

用gets读行,然后对每一个字符分析,如果都是数字,再把字符串转换为数值类型。

代码如下所示:

#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    char str[10];
    int bad_flg = 0;    //输入错误
    do {
        printf("请输入数字\n");
        gets(str);
        int len = strlen(str);
        for (int i = 0; i < len; i++) {
            if (!isdigit(str[i])) {
                bad_flg = 1;
                break;
            }
        }
    } while (bad_flg);

    int va = atoi(str);
    printf("%d\n", va);
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-17
可以通过正则表达式来判断
第2个回答  2015-07-18

    可以用链表或者字符数组来存储(我以数组为例),然后判断数组中元素是不是数字,

    也就是是否介于48~57(ASCII)之间。

  举例:

#include <stdio.h>


int main()

{


int i=0;

int flag=0;

char a[100];


while(1)

{

scanf("%s",a);

i=0;

flag=0;

while(a[i])

{

if(a[i]<48 || a[i]>57)//a[i]不是数字时

{

flag=1;//做个标志,表示输入不合法

printf("您的输入不合法!\n");

break;

}

i++;

}

if(!flag)

{

puts(a);

}

}

return 0;

}

本回答被网友采纳
相似回答