题目:实现一个函数stringToInt,实现把字符串转换成整数这个功能,不能使用atoi或者其他类似的库函数。
https://blog.csdn.net/yishizuofei/article/details/81610802
bool stringToInt(char *str,int *ret) {
if ( NULL== str || ret == NULL || str[0] == '\0') {
return false;
}
// 判断首位正负
bool minus = false;
if (str[0] == '+') {
str++;
}
else if (str[0] == '-') {
minus = true;
str++;
}
if (str == '\0') {
return false;
}
char * dist = str;
//无论是32、64 位编译器都是8个字节,防止超过精度
long long num = 0;
int flag = minus ? -1 : 1;
while (*dist != '\0') {
if ('0'<=*dist && *dist<='9') {
num = num *10 + flag *(*dist - '0');
if ((minus && num<INT_MIN) || (!minus && num>INT_MAX)) {
return false;
}
else {
dist++;
}
}
else{
return false;
}
}
*ret = (int)num;
return true;
}