您的位置:首页 > 其它

自己实现atoi系列

2012-04-08 15:36 246 查看
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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: