cs_Niníel
Messages postés20Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention19 juillet 2004
-
5 déc. 2003 à 09:19
cs_Niníel
Messages postés20Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention19 juillet 2004
-
5 déc. 2003 à 10:42
Bonjour!
J'ai un tableau: chTabStart[64] dans lequel je rentre un nombre dans le format suivant: d_25 pour un nombre décimale par exemple. Donc dans mon tableau de 64 positions, j'ai mon d_25 (qui me bouffe 4 positions). Maintenant j'aimerai récupérer juste le nombre (25). Mais attention, le nombre peut avoir jusque à 64 positions et sa sert à rien que je récupère mon nombre plus toutes les autres positions vides derrières...
En suite, j'aimerai prendre ce nombre puis le balancer dans une variable de type int. Toujours avec le nombre, si je le balance dans un autre tableau de char, est-ce qu'il y aura toujours un nombre par position?
Merci pour vos réponses
Niníel
N.B: Mes questions basic proviennent d'un "porgrammeur" basic ;-P
garslouche
Messages postés583Date d'inscriptionmardi 26 novembre 2002StatutMembreDernière intervention29 mai 20151 5 déc. 2003 à 10:08
Pas très clair tout ça...
Si j'ai bien compris tu as une chaine de caractères (qui peut avoir jusqu'à 64 caractères) dans laquelle tu écrit d_25 et tu veux récupérer le 25, c'est ça ?
La première chose à savoir c'est qu'une chaine de caractère "classique" se termine toujours par le caractère '\0'. C'est le caractère qui permet de savoir où s'arrête la chaine. Donc quand tu écris d_25 il faut en fait écrire d_25\0
Pour récupérer ton 25 il faut donc commencer par repérer la position du premier \0 rencontré. Tu sauras donc où se termine le nombre. A partir de là tu fais une recherche en reculant jusqu'à rencontrer le caractère _ . Tu sauras donc où commence le nombre.
Maintenant que tu sais où commence et où finit ton nombre, tu n'as plus qu'à l'extraire.
Quand aux convertions char*->int utilise la fonction atoi.
On ne force pas une curiosité, on l'éveille. .................................................Daniel Pennac