不使用库函数将字符串转换为数字_字符串 整数

不使用库函数将字符串转换为数字_字符串 整数_02


第8行,指针ptr指向字符串首地址,且用了const修饰,表明ptr是常量指针,只能指向常量,其指向的内容不可改变。这里是方便后面判断字符串的第一个字符是否是‘-’,以方便确定最终的转换结果是正数还是负数。

第10行,判断字符串第一个字符是否为‘+’或者‘-’,如果是二者之一,则应该从字符串的第二个字符开始转换。

第12行,while循环开始,首先判断每一个字符是否是数字,若不是,则跳出;是,则计算出数值。

第19行,判断字符串第一个字符是否是‘-’,如果是,则将上面算出来的数值取负。


结合上一篇《不使用库函数将数字转换为字符串》,可以总结出步骤:

数字转字符串:

1、将数字取绝对值;

2、判断被分配用于存储目标字符串的地址是否为空;

3、将每一个数字剥离出来,并转换为字符,存储于buf[]数组中(逆序);

4、根据数字的正负,确定目标字符串的长度;

5、将buf[]数组中逆序的数字型字符再次逆向复制到目标str[]数组中;

6、如果是负数,则还需令str[]数组的第一个字符为‘-’。


字符串转数字:

1、存储字符串的第一个字符,用于后面判断数字的正负;

2、如果字符串的第一个字符是‘+’或者‘-’,则需从第二个字符开始转换;

3、将每一个字符转换为数字,并累加起来;

4、根据字符串第一个字符是否为‘-’,判断数字的正负;

5、返回数字。