Convertir une partie d'une chaine en entier

random_user Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
[Dal] Messages postés 6205 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

[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
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