linux中atoi字符串转数字的实现(linuxatoi)
Linux世界中atoi字符串转数字的实现有许多种方法,这里介绍的是一种基于c语言的实现方法。下面的代码实现了字符串转换成int类型数字的atoi函数,它可以将字符串转换为整数,而不是转换成double或者float类型数字,以下是atoi函数的实现:
#include
#include
int atoi(const char *pStr){
int result = 0; int digit;
int sign = 1;
while(*pStr) {
if(*pStr == '-') {
sign = -1; }
else {
digit = *pStr - '0'; result = result * 10 + digit;
} pStr++;
} return result*sign;
}
atoi函数通过简单的循环实现了转换字符串为数字的功能,每次取出一个字符,其ASCII码减去’0’的ASCII码得到一个整数,该整数乘以10,加上上一位的整数形成最终的结果,这是一个简单的算法。
此外,有另一种方法可以使用Linux函数strtol将字符串转换为数字。strtol函数可以将字符串转换为长整型数据,代码如下:
#include
#include
long strtol(const char *pStr, char **ppEnd, int base){
int result = 0; while(*pStr)
{ result = result * base + (*pStr - '0');
pStr++; }
*ppEnd = (char *)pStr; return result;
}
strtol函数同样可以将字符串转换为数字,只不过strtol函数可以根据参数base的不同将字符串转换为任意进制的数字。另外,还有一些Linux函数,如atoi,可以帮助我们快速将字符串转换为数字,这给我们带来便利,大大节约了我们编程时间。