⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getanum.c

📁 包括 检验一个字符是不是数字 将一个字符数组转换成其对应的数字 获得一个合法的数字
💻 C
字号:
#include <stdio.h>


/***********************************
函数功能:检验一个字符是不是数字

参数:    一个字符
返回值:  若是数字,返回1
          若不是数字,返回0
***********************************/
int detect_number(char ch)
{
   if(ch>=48&&ch<=57)
      return 1;
   else
      return 0;
}


/**********************************
函数功能:将一个字符数组转换成其对应的数字

参数:    char型,数组

返回值:  转换后的数字
**********************************/
int array2Digit(char InStr[])
{
   int i=0,j=0,now=0;
   int length=0;
   int result=0;

   for(length=0;InStr[length]!='\0';length++);  /*计算InStr[]的长度*/

   if(length==0)
   {
      printf("The array is empty!\n\r");
      return(0);
   }

   for(i=0;i<length;i++)                        /*将InStr[]转换成数字*/
   {
      now=InStr[i]-48;
      for(j=0;j<length-i-1;j++)
         now*=10;                               /*后面加上几个0,把该数字放到正确位上*/
      result+=now;                              /*加给number*/
   }

   return(result);
}


/*****************************************
函数功能:获得一个合法的数字

细节:    对每次按键进行时时监控,禁止非法字符的输入

参数:    void

返回值:  得到得那个合法的两位数字(int型)
*****************************************/
int getANumber(void)
{
   int result=-1;                /*返回值result*/
   int i=0;                      /*计数项*/
   char now='\n';                /*当前吸收的字符*/
   char res[51];                 /*返回值ruselt的数组形式*/
   int length=0;                 /*res[]的长度*/

   for(i=0;i<51;i++)
      res[i]='\0';

   now = getche();

   if(now==13 && length==0)
   {
      result = getANumber();
      return(result);
   }

   for(;now!=13;)
   {
      if(now=='$')return(-1);

      if(detect_number(now)==0)
      {
         printf("\b \b");
         now = getche();
         continue;
      }
      else
      {
         res[length++]=now;
         now = getche();
      }

   }/*end for*/

   printf("\n\r");
   result = array2Digit(res);

   return(result);
}


/***************************
检验子函数是否正常执行功能
***************************/
main()
{
   int n=-1;

   printf("Input the number required: ");
   n = getANumber();

   printf("%d",n);
   getch();

}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -