#include int my_atoi(const char *str) { int result; char sign; for (; str && isspace(*str); ++str) ; /* 跳过空白,换行,tab*/ if (!str) return 0; sign = *str == '+' || *str == '-' ? *str++ : '+'; /* 处理符号 */ for (result = 0; str && isdigit(*str); ++str) /*转换有效部分 */ result = result * 10 + *str - '0'; /* FIXME: 没有考虑溢出 */ return (sign == '+' ? result : -result); }
#include int my_atoi(const char *str) { int result; char sign; for (; str && isspace(*str); ++str) ; /* 跳过空白,换行,tab*/ if (!str) return 0; sign = *str == '+' || *str == '-' ? *str++ : '+'; /* 处理符号 */ for (result = 0; str && isdigit(*str); ++str) /*转换有效部分 */ result = result * 10 + *str - '0'; /* FIXME: 没有考虑溢出 */ return (sign == '+' ? result : -result); }