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

本文详细介绍了atoi函数的核心实现思路,包括如何处理字符串中的空格、正负号以及数字转换过程,并提供了关键代码段的注释与解释,帮助读者深入理解atoi函数的工作原理。

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

 1 int atoi(char str[])
 2 {
 3         int flag=0;
 4         int num=0;
 5         int i=0;
 6         while(str[i]==' '||str[i]=='\t')                //判断字符串开头是否为制表符或者空格
 7         {
 8                 i++;
 9         }
10         while(str[i]=='-'||str[i]=='+')                 //判断字符串数字的正负
11                 {
12                         if(str[i]=='-')
13                         {
14                                 flag=1;                 //为负的则标记
15                         }
16                         i++;
17                 }
18         while(str[i]!='\0')                             //读字符串直到结尾
19         {
20                 if(str[i]>='0'&&str[i]<='9')            //判断字符是否为数字
21                         {
22                                 num=str[i]-'0'+num*10;  //将字符转化为数字
23                                 i++;
24                         }
25                 else                                    //如果字符串中有其他字符直接跳出
26                         break;
27         }
28         if(flag==1)
29         num=-num;                                       //如果有标记,将数字变为负数
30         printf("%d",num);
31         return 0;
32 }

好了,应该能理解,最关键的在22行,将字符串数字转换为整型数字,OK。

转载于:https://www.cnblogs.com/kingos/p/4510503.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值