设计函数 int atoi(char *s)
2个回答
展开全部
#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(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 说明值为复值*/
}
{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 说明值为复值*/
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询