int ft_atoi(char *str)
{
int i;
int sign;
int result;
// Initialisation des variables
i = 0; // Index pour parcourir la chaîne de caractères
sign = 1; // Pour gérer le signe du nombre, initialisé à 1 (positif)
result = 0; // Résultat final, initialisé à 0
// Ignorer les espaces blancs et les caractères de contrôle
while (str[i] == 32 || (str[i] >= 9 && str[i] <= 13))
i++;
// Vérifier le signe du nombre
if (str[i] == '-')
{
sign = -1; // Nombre négatif
i++;
}
else if (str[i] == '+')
i++; // Nombre positif (ou signe '+' explicite)
// Convertir les caractères numériques en entier
while (str[i] != '\0' && str[i] >= '0' && str[i] <= '9')
{
result *= 10; // Décaler le résultat vers la gauche (multiplication par 10)
result += str[i] - '0'; // Ajouter la valeur du caractère actuel (conversion de '0'-'9' en 0-9)
i++;
}
// Appliquer le signe et retourner le résultat
return (result * sign);
}
#include <stdio.h>
#include <stdlib.h>
int ft_atoi(char *str);
int main()
{
// Tester la fonction ft_atoi avec différentes chaînes
printf("ft_atoi: %d\n", ft_atoi(" -123456")); // Attendu: 123456
printf("atoi: %d\n", atoi(" ---123456")); // Attendu: 123456
printf("ft_atoi: %d\n", ft_atoi("12Three45678")); // Attendu: 12 (s'arrête à 'T')
printf("atoi: %d\n", atoi("12Three45678")); // Attendu: 12 (comportement standard de atoi)
printf("ft_atoi: %d\n", ft_atoi("Hello World!")); // Attendu: 0 (aucun nombre au début)
printf("atoi: %d\n", atoi("Hello World!")); // Attendu: 0 (comportement standard de atoi)
printf("ft_atoi: %d\n", ft_atoi("+42 BLAH!")); // Attendu: 42
printf("atoi: %d\n", atoi("+42 BLAH!")); // Attendu: 42
printf("ft_atoi: %d\n", ft_atoi("-42")); // Attendu: -42
printf("atoi: %d\n", atoi("-42")); // Attendu: -42
printf("ft_atoi: %d\n", ft_atoi(" +42")); // Attendu: 42 (espaces au début)
printf("atoi: %d\n", atoi(" +42")); // Attendu: 42
printf("ft_atoi: %d\n", ft_atoi("\t\n\v\f\r 42")); // Attendu: 42 (espaces blancs et contrôles)
printf("atoi: %d\n", atoi("\t\n\v\f\r 42")); // Attendu: 42
printf("ft_atoi: %d\n", ft_atoi("5")); // Attendu: 5
printf("atoi: %d\n", atoi("5")); // Attendu: 5
return 0;
}
To embed this project on your website, copy the following code and paste it into your website's HTML: