c语言 怎么判断输入的是否数字?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言 怎么判断输入的是否数字?相关的知识,希望对你有一定的参考价值。

scanf("%d",&h);之后有没有办法实现 如果输入的不是数字 就提示错误 如果是数字 就继续下面的运算?

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始的.cpp文件,例如:test.cpp。

2、其次,在test.cpp文件中,输入C语言代码:char a = getchar(); getchar();

if (a <= '9' && a >= '0') printf("数字");else printf("字母");

3、然后,编译器运行test.cpp文件,输入数字,此时会成功判断输入内容为数字。

4、最后,输入字母,此时成功判断了输入内容为字母。

参考技术A 你的意思是输入的如果不是数字,就提示输入不对,然后接着之前的重新输入吗? 参考技术B String.h里面包含 isdigit();就是你要找的函数 参考技术C IsNumeric函数是判断是不是数字的 是数字返回TRUE 参考技术D int isnum,h;
do{
isnum=scanf(”%d”,&h);
if(isnum!=1)
printf(”请输入数字”);

while(isnum==1);

C#怎么判断输入内容是不是为数字

方案一:Try...Catch(执行效率不高)
///
/// 名称:IsNumberic
/// 功能:判断输入的是否是数字
/// 参数:string oText:源文本
/// 返回值: bool true:是 false:否
///
///
///
private bool IsNumberic(string oText)

try

int var1=Convert.ToInt32 (oText);
return true;

catch

return false;



方案二:正则表达式(推荐)
a)
using System;
using System.Text.RegularExpressions;

public bool IsNumber(String strNumber)

Regex objNotNumberPattern=new Regex("[^0-9.-]");
Regex objTwoDotPattern=new Regex("[0-9]*[.][0-9]*[.][0-9]*");
Regex objTwoMinusPattern=new Regex("[0-9]*[-][0-9]*[-][0-9]*");
String strValidRealPattern="^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+$";
String strValidIntegerPattern="^([-]|[0-9])[0-9]*$";
Regex objNumberPattern =new Regex("(" + strValidRealPattern +")|(" + strValidIntegerPattern + ")");

return !objNotNumberPattern.IsMatch(strNumber) &&
!objTwoDotPattern.IsMatch(strNumber) &&
!objTwoMinusPattern.IsMatch(strNumber) &&
objNumberPattern.IsMatch(strNumber);


b)
public static bool IsNumeric(string value)

return Regex.IsMatch(value, @"^[+-]?\\d*[.]?\\d*$");

public static bool IsInt(string value)

return Regex.IsMatch(value, @"^[+-]?\\d*$");

public static bool IsUnsign(string value)

return Regex.IsMatch(value, @"^\\d*[.]?\\d*$");
参考技术A 判断是不是数据,要不是就表示没有选择,则从隐藏域里读出来

以上是关于c语言 怎么判断输入的是否数字?的主要内容,如果未能解决你的问题,请参考以下文章

c语言中如何判断输入的是不是数字?

如何用c语言判断222723272中数字2出现的次数

C语言如何判断输入数字的个数

C语言,怎么判定,是否数字?

闰年用c语言怎么写?

C语言,判断某整数中是不是存在重复数字。怎么写呢?