今天重新看了一下,发现上一个算法写的太烂了,下面是更新了的一个好的函数。
int gx_atoi(char * arr, int size) {
//assert(arr != NULL);
//assert(size != 0);
int i = 0, result = 0;
for (i = 0; i < size; i++) {
result = result * 10 + (arr[i] - '0');
}
return result;
}
//之前写的比较烂的函数。
int strToInt(char * str) {
int i = 0, flag = 1, result = 0;
//_ASSERT(str != NULL);
if (str[0] == '-') {
flag = -1;
i = 1;
}
while (str[i] != '\0') {
result = (result + (str[i] - '0'))* 10;
i++;
}
result /= 10;
result *= flag;
return result;
}