Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé

Fonctions strtoimax et strtoumax

La fonction imaxdiv Les fonctions wcstoimax et wcstoumax


Entête à inclure

#include <inttypes.h>  // <cinttypes> en C++

Fonction strtoimax

intmax_t strtoimax( const char * restrict nptr, char ** restrict endptr, int base );

Fonction strtoumax

uintmax_t strtoumax( const char * restrict nptr, char ** restrict endptr, int base );

Ces deux fonctions convertissent le début d'une chaîne de caractères vers intmax_t ou uintmax_t. Elles suivent la même logique que strtol, strtoll, strtoul et strtoull, mais ciblent les types entiers les plus larges.

En cas de dépassement, elles renvoient une valeur limite et positionnent errno à ERANGE. Comme toujours avec cette famille de fonctions, le paramètre endptr permet de savoir où la conversion s'est arrêtée.

Exemple de code

L'exemple suivant convertit une valeur décimale et vérifie explicitement les erreurs de conversion.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
#include <errno.h>
#include <inttypes.h>
#include <stdio.h>

int main() {

    const char * text = "-1234567890123";
    char * end;

    errno = 0;
    intmax_t value = strtoimax( text, &end, 10 );

    if ( end == text ) {
        puts( "Aucune conversion." );
    } else if ( errno == ERANGE ) {
        puts( "Valeur hors limites." );
    } else {
        printf( "value == %" PRIdMAX "\n", value );
    }

    return 0;
}
Conversion vers intmax_t

Sujets connexes

ERANGE
strtol
strtoul
wcstoimax et wcstoumax


La fonction imaxdiv Les fonctions wcstoimax et wcstoumax




Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé