自己实现atoi系列(atoi函数)

    技术2022-05-13  6

    atoi系列是字符跟数字之间转换常用的函数,其实自己实现也是挺快的,这里写一种带格式检测的atoi函数。

    函数说明atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('/0')才结束转换,并将结果返回。返回值返回转换后的整型数。

     

    #include<stdio.h>

    int my_atoi(const char * str){ int res=0,begin=0,i; bool minus=false; while(*str!='/0') {  if(begin==0&&(('0'<*str&&*str<'9')|| *str=='-') )         //从第一个数字或者'-'号开始  {   begin=1;   if(*str == '-')   {    minus=true;    str++;   }  }  else if( begin==1&&(*str<'0'||*str>'9') )           //遇到第一个非数字,退出   break;  if(begin==1)   res=res*10+(*str-'0');                       //计算  str++; } return minus? -res : res;}

    int main(){ int i=0; char s1[]="-1245781"; char s2[]="35678"; char s3[]="ab568678"; char s4[]="bn-35878"; char s5[]="bh-836583mk"; i=my_atoi(s1) ; printf("i1 is %d/n",i); i=my_atoi(s2) ; printf("i2 is %d/n",i); i=my_atoi(s3) ; printf("i3 is %d/n",i); i=my_atoi(s4) ; printf("i4 is %d/n",i); i=my_atoi(s5) ; printf("i5 is %d/n",i); return 0;}


    最新回复(0)