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;

}

本回答被网友采纳

C语言如何判断,输入的是数字。如果不是则输出重新输入的信息。 如不...
用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"); ge...

c语言求教 求分割整数的完整函数 例如输入12300,输出1 2 3 0 0 最 ...
if(c2 != '$') printf("%c ", c2); \/\/ 第一次先不输出,使用c1赋值c2后再输出,加空格 c2 = c1; \/\/ 赋值 } printf("%c", c2); \/\/ 输出回车前的那个数字,加空格 return 0;} 注意,上述代码没有坚持输入合法性,比如输入12bf12这样的,如果需要,自己加一下判断吧。

C语言用这个输入AB再移
剩余三个字符,程序中没有处理。输出a b值,结果就是 12 34

我这有C语言的题,哪位大侠能解决一下,必有重谢!
4、语句printf(“%d\\n”,strlen(“xyz\\t\\xab\\3\\\\”));的输出结果是( )。本题(1分)A:9B:11C:7D:8 A B C D 5、假设所有变量均为整型,则执行运算x=(a=2,b=5,b++,a+b)后, x的值是( )。本题(1分)A:7B:8C:6D:2 A B C D 6、若二维数组定义为a[m][n],则在a[i][j]之前...

...的各位数字,计算它们的和并输出到显示器上 。
这步计算不出a,b,c,d的值 这里计算a,b,c,d的值要用取余符号 d=e%10; \/\/d是e的个位数 取余符号就是取余数,比如: 123%10=3 c=(e\/10)%10; \/\/c是十位数 这里 e\/10 得到的只是整数部分,比如:123\/10=12 b=(e\/100)%10; \/\/b是百位数 a=e\/1000; \/\/a是...

...哥哥们:vbs中的wscript.shell是什么意思,如果是高手的话就给我讲 ...
你会发现用于输入的文本框有了默认的值, 这就是第三个参数的作用. Msgbox函数是用来输出的函数, 在VBS中没有专门的输出函数(BASIC中的print,C中的printf), 所以我们只能用对话框来观察输出结果, Msgbox的必要参数只有一个, 就是要输出的内容, 在这种情况下, 我们不需要理会msgbox的返回值. 关于Msgbox和Input...

相似回答