您的位置:首页 > 其它

将一串字符串数字转化为整型数字

2015-05-17 21:20 260 查看
上篇文章介绍了itoa函数的实现,今天来说说atoi函数,主要思路是:将字符串从头开始读取,跳过最前面的空格以及其他无用字符;遇到正负号,做标记;之后的字符串,遇到数字则转换,遇到其他字符则直接跳出。好了,贴下代码:

int atoi(char str[])
{
int flag=0;
int num=0;
int i=0;
while(str[i]==' '||str[i]=='\t')                //判断字符串开头是否为制表符或者空格
{
i++;
}
while(str[i]=='-'||str[i]=='+')                 //判断字符串数字的正负
{
if(str[i]=='-')
{
flag=1;                 //为负的则标记
}
i++;
}
while(str[i]!='\0')                             //读字符串直到结尾
{
if(str[i]>='0'&&str[i]<='9')            //判断字符是否为数字
{
num=str[i]-'0'+num*10;  //将字符转化为数字
i++;
}
else                                    //如果字符串中有其他字符直接跳出
break;
}
if(flag==1)
num=-num;                                       //如果有标记,将数字变为负数
printf("%d",num);
return 0;
}


好了,应该能理解,最关键的在22行,将字符串数字转换为整型数字,OK。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: