fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int ft_atoi(char *str)
  5. {
  6. int i;
  7. int result;
  8. int minus;
  9.  
  10. minus = 1;
  11. i = 0;
  12. result = 0;
  13. while (str[i] == ' ' || str[i] == '\t' ||
  14. str[i] == '\v' || str[i] == '\r' || str[i] == '\n' || str[i] == '\f')
  15. i++;
  16. if (str[i] == '-')
  17. minus *= (-1);
  18. if (str[i] == '-' || str[i] == '+')
  19. i++;
  20. while (str[i] >= '0' && str[i] <= '9')
  21. {
  22. result = 10 * result + (str[i] - '0');
  23. i++;
  24. }
  25. return (result *= minus);
  26. }
  27.  
  28. int main(void)
  29. {
  30. char *str;
  31.  
  32. str = "2142";
  33. printf(" ATOI (%s) = %d\n", str, atoi(str));
  34. printf("FT_ATOI (%s) = %d\n\n", str, ft_atoi(str));
  35. str = " -2142";
  36. printf(" ATOI (%s) = %d\n", str, atoi(str));
  37. printf("FT_ATOI (%s) = %d\n\n", str, ft_atoi(str));
  38. str = " +2142";
  39. printf(" ATOI (%s) = %d\n", str, atoi(str));
  40. printf("FT_ATOI (%s) = %d\n\n", str, ft_atoi(str));
  41. str = "\t\n\v\f\r -2142";
  42. printf(" ATOI (%s) = %d\n", str, atoi(str));
  43. printf("FT_ATOI (%s) = %d\n\n", str, ft_atoi(str));
  44. str = "V-2142";
  45. printf(" ATOI (%s) = %d\n", str, atoi(str));
  46. printf("FT_ATOI (%s) = %d\n\n", str, ft_atoi(str));
  47. str = "-21V42";
  48. printf(" ATOI (%s) = %d\n", str, atoi(str));
  49. printf("FT_ATOI (%s) = %d\n\n", str, ft_atoi(str));
  50. str = " v -2142";
  51. printf(" ATOI (%s) = %d\n", str, atoi(str));
  52. printf("FT_ATOI (%s) = %d\n\n", str, ft_atoi(str));
  53. str = "-21 42";
  54. printf(" ATOI (%s) = %d\n", str, atoi(str));
  55. printf("FT_ATOI (%s) = %d\n\n", str, ft_atoi(str));
  56. str = "- +2142";
  57. printf(" ATOI (%s) = %d\n", str, atoi(str));
  58. printf("FT_ATOI (%s) = %d\n\n", str, ft_atoi(str));
  59. str = "+-2142";
  60. printf(" ATOI (%s) = %d\n", str, atoi(str));
  61. printf("FT_ATOI (%s) = %d\n\n", str, ft_atoi(str));
  62. str = "- 21 42";
  63. printf(" ATOI (%s) = %d\n", str, atoi(str));
  64. printf("FT_ATOI (%s) = %d\n\n", str, ft_atoi(str));
  65. str = "-0";
  66. printf(" ATOI (%s) = %d\n", str, atoi(str));
  67. printf("FT_ATOI (%s) = %d\n\n", str, ft_atoi(str));
  68. str = "+0";
  69. printf(" ATOI (%s) = %d\n", str, atoi(str));
  70. printf("FT_ATOI (%s) = %d\n\n", str, ft_atoi(str));
  71. return (0);
  72. }
Success #stdin #stdout 0s 4332KB
stdin
Standard input is empty
stdout
 ATOI (2142) = 2142
FT_ATOI (2142) = 2142

 ATOI ( -2142) = -2142
FT_ATOI ( -2142) = -2142

 ATOI ( +2142) = 2142
FT_ATOI ( +2142) = 2142

 ATOI (	

 -2142) = -2142
FT_ATOI (	

 -2142) = -2142

 ATOI (V-2142) = 0
FT_ATOI (V-2142) = 0

 ATOI (-21V42) = -21
FT_ATOI (-21V42) = -21

 ATOI ( v -2142) = 0
FT_ATOI ( v -2142) = 0

 ATOI (-21 42) = -21
FT_ATOI (-21 42) = -21

 ATOI (- +2142) = 0
FT_ATOI (- +2142) = 0

 ATOI (+-2142) = 0
FT_ATOI (+-2142) = 0

 ATOI (- 21 42) = 0
FT_ATOI (- 21 42) = 0

 ATOI (-0) = 0
FT_ATOI (-0) = 0

 ATOI (+0) = 0
FT_ATOI (+0) = 0