#include <stdio.h>
#include <stdlib.h>
int ft_atoi(char *str)
{
int i;
int result;
int minus;
minus = 1;
i = 0;
result = 0;
while (str[i] == ' ' || str[i] == '\t' ||
str[i] == '\v' || str[i] == '\r' || str[i] == '\n' || str[i] == '\f')
i++;
if (str[i] == '-')
minus *= (-1);
if (str[i] == '-' || str[i] == '+')
i++;
while (str[i] >= '0' && str[i] <= '9')
{
result = 10 * result + (str[i] - '0');
i++;
}
return (result *= minus);
}
int main(void)
{
char *str;
str = "2142";
printf("FT_ATOI (%s) = %d\n\n", str
, ft_atoi
(str
)); str = " -2142";
printf("FT_ATOI (%s) = %d\n\n", str
, ft_atoi
(str
)); str = " +2142";
printf("FT_ATOI (%s) = %d\n\n", str
, ft_atoi
(str
)); str = "\t\n\v\f\r -2142";
printf("FT_ATOI (%s) = %d\n\n", str
, ft_atoi
(str
)); str = "V-2142";
printf("FT_ATOI (%s) = %d\n\n", str
, ft_atoi
(str
)); str = "-21V42";
printf("FT_ATOI (%s) = %d\n\n", str
, ft_atoi
(str
)); str = " v -2142";
printf("FT_ATOI (%s) = %d\n\n", str
, ft_atoi
(str
)); str = "-21 42";
printf("FT_ATOI (%s) = %d\n\n", str
, ft_atoi
(str
)); str = "- +2142";
printf("FT_ATOI (%s) = %d\n\n", str
, ft_atoi
(str
)); str = "+-2142";
printf("FT_ATOI (%s) = %d\n\n", str
, ft_atoi
(str
)); str = "- 21 42";
printf("FT_ATOI (%s) = %d\n\n", str
, ft_atoi
(str
)); str = "-0";
printf("FT_ATOI (%s) = %d\n\n", str
, ft_atoi
(str
)); str = "+0";
printf("FT_ATOI (%s) = %d\n\n", str
, ft_atoi
(str
)); return (0);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludAkJZnRfYXRvaShjaGFyICpzdHIpCnsKCWludCBpOwoJaW50IHJlc3VsdDsKCWludCBtaW51czsKCgltaW51cyA9IDE7CglpID0gMDsKCXJlc3VsdCA9IDA7Cgl3aGlsZSAoc3RyW2ldID09ICcgJyB8fCBzdHJbaV0gPT0gJ1x0JyB8fCAKCXN0cltpXSA9PSAnXHYnIHx8IHN0cltpXSA9PSAnXHInIHx8IHN0cltpXSA9PSAnXG4nICB8fCBzdHJbaV0gPT0gJ1xmJykKCQlpKys7CglpZiAoc3RyW2ldID09ICctJykKCQltaW51cyAqPSAoLTEpOwoJaWYgKHN0cltpXSA9PSAnLScgfHwgc3RyW2ldID09ICcrJykKCQlpKys7Cgl3aGlsZSAoc3RyW2ldID49ICcwJyAmJiBzdHJbaV0gPD0gJzknKQoJewoJCXJlc3VsdCA9IDEwICogcmVzdWx0ICsgKHN0cltpXSAtICcwJyk7CgkJaSsrOwoJfQoJcmV0dXJuIChyZXN1bHQgKj0gbWludXMpOwp9CgppbnQgbWFpbih2b2lkKQp7CmNoYXIgKnN0cjsKCnN0ciA9ICIyMTQyIjsKcHJpbnRmKCIgQVRPSSAoJXMpID0gJWRcbiIsIHN0ciwgYXRvaShzdHIpKTsKcHJpbnRmKCJGVF9BVE9JICglcykgPSAlZFxuXG4iLCBzdHIsIGZ0X2F0b2koc3RyKSk7CnN0ciA9ICIgLTIxNDIiOwpwcmludGYoIiBBVE9JICglcykgPSAlZFxuIiwgc3RyLCBhdG9pKHN0cikpOwpwcmludGYoIkZUX0FUT0kgKCVzKSA9ICVkXG5cbiIsIHN0ciwgZnRfYXRvaShzdHIpKTsKc3RyID0gIiArMjE0MiI7CnByaW50ZigiIEFUT0kgKCVzKSA9ICVkXG4iLCBzdHIsIGF0b2koc3RyKSk7CnByaW50ZigiRlRfQVRPSSAoJXMpID0gJWRcblxuIiwgc3RyLCBmdF9hdG9pKHN0cikpOwpzdHIgPSAiXHRcblx2XGZcciAtMjE0MiI7CnByaW50ZigiIEFUT0kgKCVzKSA9ICVkXG4iLCBzdHIsIGF0b2koc3RyKSk7CnByaW50ZigiRlRfQVRPSSAoJXMpID0gJWRcblxuIiwgc3RyLCBmdF9hdG9pKHN0cikpOwpzdHIgPSAiVi0yMTQyIjsKcHJpbnRmKCIgQVRPSSAoJXMpID0gJWRcbiIsIHN0ciwgYXRvaShzdHIpKTsKcHJpbnRmKCJGVF9BVE9JICglcykgPSAlZFxuXG4iLCBzdHIsIGZ0X2F0b2koc3RyKSk7CnN0ciA9ICItMjFWNDIiOwpwcmludGYoIiBBVE9JICglcykgPSAlZFxuIiwgc3RyLCBhdG9pKHN0cikpOwpwcmludGYoIkZUX0FUT0kgKCVzKSA9ICVkXG5cbiIsIHN0ciwgZnRfYXRvaShzdHIpKTsKc3RyID0gIiB2IC0yMTQyIjsKcHJpbnRmKCIgQVRPSSAoJXMpID0gJWRcbiIsIHN0ciwgYXRvaShzdHIpKTsKcHJpbnRmKCJGVF9BVE9JICglcykgPSAlZFxuXG4iLCBzdHIsIGZ0X2F0b2koc3RyKSk7CnN0ciA9ICItMjEgNDIiOwpwcmludGYoIiBBVE9JICglcykgPSAlZFxuIiwgc3RyLCBhdG9pKHN0cikpOwpwcmludGYoIkZUX0FUT0kgKCVzKSA9ICVkXG5cbiIsIHN0ciwgZnRfYXRvaShzdHIpKTsKc3RyID0gIi0gKzIxNDIiOwpwcmludGYoIiBBVE9JICglcykgPSAlZFxuIiwgc3RyLCBhdG9pKHN0cikpOwpwcmludGYoIkZUX0FUT0kgKCVzKSA9ICVkXG5cbiIsIHN0ciwgZnRfYXRvaShzdHIpKTsKc3RyID0gIistMjE0MiI7CnByaW50ZigiIEFUT0kgKCVzKSA9ICVkXG4iLCBzdHIsIGF0b2koc3RyKSk7CnByaW50ZigiRlRfQVRPSSAoJXMpID0gJWRcblxuIiwgc3RyLCBmdF9hdG9pKHN0cikpOwpzdHIgPSAiLSAyMSA0MiI7CnByaW50ZigiIEFUT0kgKCVzKSA9ICVkXG4iLCBzdHIsIGF0b2koc3RyKSk7CnByaW50ZigiRlRfQVRPSSAoJXMpID0gJWRcblxuIiwgc3RyLCBmdF9hdG9pKHN0cikpOwpzdHIgPSAiLTAiOwpwcmludGYoIiBBVE9JICglcykgPSAlZFxuIiwgc3RyLCBhdG9pKHN0cikpOwpwcmludGYoIkZUX0FUT0kgKCVzKSA9ICVkXG5cbiIsIHN0ciwgZnRfYXRvaShzdHIpKTsKc3RyID0gIiswIjsKcHJpbnRmKCIgQVRPSSAoJXMpID0gJWRcbiIsIHN0ciwgYXRvaShzdHIpKTsKcHJpbnRmKCJGVF9BVE9JICglcykgPSAlZFxuXG4iLCBzdHIsIGZ0X2F0b2koc3RyKSk7CnJldHVybiAoMCk7Cn0=