#include <stdio.h> #if 0 #include <stdlib.h> #else int atoi(const char *a) { int negative = 0; int sign = 0; int val = 0; while (*a != '\0') { if (*a == '+' || *a == '-') { if (val != 0) break; // atoi("2+3") = 2; if (sign) break; // atoi("++1") = 0; sign = 1; negative = (*a == '-'); } else if (*a == ' ' || *a == '\r' || *a == '\n' || *a == '\t') { if (val != 0) break; // atoi("123\n456") = 123; if (sign) break; // atoi("+ 123") = 0; } else if (*a >= '0' && *a <= '9') val = val * 10 + (*a - '0'); else break; ++a; } return negative ? -val : val; } #endif int main(void) { char a[] = "123\n456"; int val = atoi(a); printf("val: %d\n", val); return 0; }
atoi函数实现
猜你喜欢
转载自blog.csdn.net/sourire_will/article/details/80725481
今日推荐
周排行