不使用库函数将字符串转换为数字
2015-11-05 15:20
323 查看
第8行,指针ptr指向字符串首地址,且用了const修饰,表明ptr是常量指针,只能指向常量,其指向的内容不可改变。这里是方便后面判断字符串的第一个字符是否是‘-’,以方便确定最终的转换结果是正数还是负数。
第10行,判断字符串第一个字符是否为‘+’或者‘-’,如果是二者之一,则应该从字符串的第二个字符开始转换。
第12行,while循环开始,首先判断每一个字符是否是数字,若不是,则跳出;是,则计算出数值。
第19行,判断字符串第一个字符是否是‘-’,如果是,则将上面算出来的数值取负。
结合上一篇《不使用库函数将数字转换为字符串》,可以总结出步骤:
数字转字符串:
1、将数字取绝对值;
2、判断被分配用于存储目标字符串的地址是否为空;
3、将每一个数字剥离出来,并转换为字符,存储于buf[]数组中(逆序);
4、根据数字的正负,确定目标字符串的长度;
5、将buf[]数组中逆序的数字型字符再次逆向复制到目标str[]数组中;
6、如果是负数,则还需令str[]数组的第一个字符为‘-’。
字符串转数字:
1、存储字符串的第一个字符,用于后面判断数字的正负;
2、如果字符串的第一个字符是‘+’或者‘-’,则需从第二个字符开始转换;
3、将每一个字符转换为数字,并累加起来;
4、根据字符串第一个字符是否为‘-’,判断数字的正负;
5、返回数字。
相关文章推荐
- obj.getClass()==JTest.class作用和JTest ad=(JTest)obj为什么需要强制类型转换
- android之Android类装载器DexClassLoader之一
- 解决EasyUI动态添加标签渲染问题
- 数据库连接driverClass和jdbcUrl大全
- Android中Invalidate和postInvalidate和requestLayout的区别
- Android系列教程之Activity的生命周期
- Visual C++内存泄露检测—VLD工具使用说明
- 利用ajax实现与php数据交互,并局部刷新页面
- 数据类型和运算符
- STM32之GPIO及第一个STM32程序(跑马灯)
- Carthage&&cocopads 摘抄笔记
- Carthage&&cocopads 摘抄笔记
- [开源]在iOS上实现Android风格的控件Toast
- LeetCode 024 Swap Nodes in Pairs
- C#.NET Form设置/取消开机自动运行,判断程序是否已经设置成开机自动启动
- Android--获取使用的总流量和每个App的上传、下载的流量
- ActiveDirectory之不常用操作
- Windows平台编译 PostgreSQL - Postgres2015全国用户大会--重磅嘉宾佳作分享(权宗亮)
- 【codevs1163】访问艺术馆,圣战の终焉
- Android常用工具类------一直更新