Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中的数字验证_C - Fatal编程技术网

C语言中的数字验证

C语言中的数字验证,c,C,我需要用C写一个小程序,它只接收数字。 作为这个程序的一部分,我需要创建一个验证,用户输入将只是数字, 否则程序将显示错误 我读过关于isdigit()函数的文章,但它对我不起作用。你还有其他解决办法吗 hours和minutes是用户输入,定义为整数 if (!isdigit(hours) || !isdigit(minutes)) { printf("Invalid Time\n"); } 您需要检查输入的每个字符,以确定它们是否为数字: for(int i = 0; i <

我需要用C写一个小程序,它只接收数字。 作为这个程序的一部分,我需要创建一个验证,用户输入将只是数字, 否则程序将显示错误

我读过关于
isdigit()
函数的文章,但它对我不起作用。你还有其他解决办法吗

hours
minutes
是用户输入,定义为整数

if (!isdigit(hours) || !isdigit(minutes))
{
    printf("Invalid Time\n");
}

您需要检查输入的每个字符,以确定它们是否为数字:

for(int i = 0; i < strlen(hours); i++)
{
   if(!isDigit(hours[i])) { printf("invalid time\n"); break; }
}
for(int i=0;i
您需要检查输入的每个字符,以确定它们是否为数字:

for(int i = 0; i < strlen(hours); i++)
{
   if(!isDigit(hours[i])) { printf("invalid time\n"); break; }
}
for(int i=0;i
isdigit
只检查一个字符;我怀疑您正在查看字符串(尽管您的问题中不清楚这一点)。我不确定是否有库函数可以满足您的需要,但您可以使用如下函数:

int isnumeric(char *p)
{
   while (*p)
   {
       if ( ! isdigit(p))
           return 0;
       p++;
   }
   return 1;
}

isdigit
仅检查单个字符;我怀疑您正在查看字符串(尽管您的问题中不清楚这一点)。我不确定是否有库函数可以满足您的需要,但您可以使用如下函数:

int isnumeric(char *p)
{
   while (*p)
   {
       if ( ! isdigit(p))
           return 0;
       p++;
   }
   return 1;
}

isdigit(X)如果返回真值(0isdigit(X)如果返回真值(0什么
hours
minutes
?如果变量被定义为整数,它们总是数字。什么
hours
minutes
?如果变量被定义为整数,它们总是数字。在字符串不变的循环中使用strlen?这是过早的悲观。一个好的编译器将一定要在字符串不变的循环中使用strlen优化iTunes?这是过早的悲观。一个好的编译器肯定会优化它