永发信息网

设计函数 int atoi(char *s)

答案:2  悬赏:70  手机版
解决时间 2021-03-21 03:51
  • 提问者网友:佞臣
  • 2021-03-20 15:34
设计函数 int atoi(char *s)
最佳答案
  • 五星知识达人网友:雾月
  • 2021-03-20 17:05
#include
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;
}

已通过编译,可以直接在主函数中调用
全部回答
  • 1楼网友:夜风逐马
  • 2021-03-20 17:48
int atoi(const char *ptr)
{int i=0;
int val,result=0;
if(*ptr=='+'||*ptr=='-'||(*ptr>='0'&&*ptr<='9'))
;
else return 0;
if(*ptr=='+'||*ptr=='-')
{ptr++;
if(*(ptr-1)=='-')
i=-1;
}
while(*ptr>='0'&&*ptr<='9')
result=10*result+*ptr++-'0';

return i?-result:result;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯