设计函数 int atoi(char *s)

来源:百度知道 编辑:UC知道 时间:2024/05/29 18:32:11

#include<string.h>
int atoi(char *s)
{
int i,result=0,length;
length=strlen(s);
if(s[0] == '-') i=1; //若是负数,则从第一个字符开始计数
else i=0; //否则从0号位开始计数
for( ; i < length; ++i)
{
result = result * 10 + s[i] - 48; //48是字符0的ASCII码
}
if(s[0] == '-') return -1 * result;
else return result;
}

已通过编译,可以直接在主函数中调用

int atoi(const char *ptr)
{int i=0;
int val,result=0;
if(*ptr=='+'||*ptr=='-'||(*ptr>='0'&&*ptr<='9'))
; /*执行空语句*/
else return 0;/*第一个字母不是+ - 或数字字符则返回0*/
if(*ptr=='+'||*ptr=='-')
{ptr++;
if(*(ptr-1)=='-')
i=-1;
}
while(*ptr>='0'&&*ptr<='9')
result=10*result+*ptr++-'0';

return i?-result:result;/*若i的值非0 说明值为复值*/
}