一、atoi函数的功能
atoi函数的功能是将字符串转换为整数 ,并且该函数能转换正负数,和对字符串前面的空格进行跳跃,遇到数字进行转换,遇到非数字字符转换结束,还有若转换成整数越界也无法转换。
二、模拟实现
#include<stdio.h> #include<ctype.h> #include<limits.h> enum Statue { normal, abnormal }; Statue statue = abnormal; int my_auti(const char* str) { int flag = 0; if (*str == NULL || *str == '\0') { return 0; } while (isspace(*str)) { str++;//对空格进行跳跃 } if (*str == '-') { flag = -1; str++; } else if (*str == '+') { flag = 1; str++; } else { flag = 1; } long long sum = 0; while (isdigit(*str)) { sum = (*str-'0') * flag + sum * 10; if (sum<INT_MIN || sum>INT_MAX) { return 0; } str++; } if (*str == '\0') { statue = normal; return sum; } else { return sum; } } int main() { char str[30] = " -499"; int ret = my_auti(str); if (statue == normal) { printf("正常转换:%d\n", ret); } else { printf("异常转换:%d\n", ret); } return 0; }
运行结果: