Convertir une partie d'une chaine en entier

Fermé
random_user Messages postés 2 Date d'inscription dimanche 25 novembre 2018 Statut Membre Dernière intervention 27 novembre 2018 - 27 nov. 2018 à 22:25
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 28 nov. 2018 à 09:15
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 .
A voir également:

1 réponse

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 28 nov. 2018 à 09:16
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