97
98
99
65
66
67
6
Appuyez sur une touche pour continuer...
Mon problème, c'est le 6 qui s'affiche (il indique la longueure de la chaîne de caractères) et je ne comprend pas pourquoi il s'affiche, si quelqu'un peut m'aider ça serait gentil ! @+
A voir également:
Échec de la conversion de la date et/ou de l'heure à partir d'une chaîne de caractères
NitRic
Messages postés402Date d'inscriptionmardi 1 mai 2001StatutMembreDernière intervention15 août 2011 23 févr. 2002 à 22:51
Bien pour commencer si tu veux connaître la longeur réel d'une chaine(sans compter le caractère de fin de chaine(0)) en utilisant strlen(); ben fait comme ceci:
int len = (strlen(la_chaine) - 1);
for (int i = 0; i <= len; i++)
{
// ton code
}
strlen(); nous retourne la longeur d'une chaine mais compte aussi le caractère de fin de chaine(\0) même si plusieurs dise le contraire ...
En passant si tu veux optimiser un peu ben ne met pas strlen() dans ton for() car il est appeler à chaque tour de t'as boucle, alors il recalcule la longeur de la chaine à chaque tour!
Croqmort
Messages postés95Date d'inscriptionmercredi 5 décembre 2001StatutMembreDernière intervention27 juin 2006 24 févr. 2002 à 22:16
strlen renvoi le nombre de caractere d'une chaine sans compter le caractere null final donc en fait
strlen("bonjour") renvoi 7
aprés tu fait
for (int i = 0; i <= len; i++)
donc il commence à 0 et va faire 8 tour car il va aller de 0 à 7 avec 7 compris
donc en fait il faut mieux faire :
int len = strlen(la_chaine);
for (int i = 0; i < len; i++){
// ton code
}
et pour le prob de mmuller57, je ne comprend pas d'où vien le probleme.
je te conseil de decompose au maximum pour y voir plus clair et execute pas à pas, tu trouvera surement le probleme