Convertir une partie d'une chaine en entier

random_user Messages postés 2 Statut Membre -  
[Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   -
Salut , je voulais savoir comment je peux convertir une partie d'une chaine en entier
par exemple :
j'ai des chaines qui contient des date comme :12/5/2018
je veux avoir seulement la partie "2018" de chaque chaine mais en type int
merci d'avance .

1 réponse

  1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    Salut random_user,

    Une façon de faire est de rechercher les occurrences du caractère
    '/'
    dans la chaîne et de passer la chaîne à partir du caractère suivant le 2ème
    '/'
    à
    strtol()
    .

    Cette fonction convertit en
    long int
    , et non en
    int
    , mais elle te permet de contrôler le résultat de la conversion et qu'il ne dépasse pas les limites admises sur
    long int
    (et, en utilisant les constantes de
    <limits.h>
    , tu peux aussi t'assurer qu'il n'y a pas de débordement de capacité sur les types entiers de capacité inférieure, dont
    int
    avant de mettre le résultat dans une variable de ce type).

    atoi()
    convertit directement en
    int
    , mais ne permet pas d'effectuer ce type de contrôle.

    Documente toi et fait ton code.

    Si tu as un problème , poste ton code.

    Dal
    0