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;
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: