programme débutant sur les chaînes. - C - Programmation
Marsh Posté le 16-06-2010 à 04:53:15
ok j'ai compris..
c'était les retours chariot "lala \n" qui foutaient la merde,
donc j'ai modifié lstrip()
Code :
|
Marsh Posté le 18-06-2010 à 19:38:53
Mouais. On voit le type qui n'a jamais fait de COBOL !!!
Code :
|
Code :
|
Code :
|
Code :
|
Marsh Posté le 24-06-2010 à 14:10:54
Code :
|
Je pense pas que ça fasse ce que tu veux faire ça. Ca va comparer le résultat de l'affectation ss[i] = s[i] (i.e est-ce que l'affectation s'est bien déroulée ou pas) au caractère '\0', et pas le contenu de ss[i] et/ou de s[i] à '\0'. C'est possible que ça vaille quand même \0 quand on arrive à la fin du tableau sans erreur, mais si ta chaîne ne se termine pas par \0 t'auras une boucle infinie et probablement un segfault.
Marsh Posté le 24-06-2010 à 14:21:55
Non l'opérateur = renvoie la valeur affectée... le test est correct.
Marsh Posté le 24-06-2010 à 17:10:16
ReplyMarsh Posté le 24-06-2010 à 17:15:53
Ha bah si la chaine ne contient pas '\0' elle n'est pas formatée selon les règles...
Les librairies standards attendent un '\0' en fin de chaine, ne pas mettre peut donner des résultats assez inattendus.
Marsh Posté le 28-06-2010 à 19:29:59
Pas tout à fait infinie. La boucle continuera son itération en séquentiel dans la mémoire jusqu'à ce qu'elle trouve, quelque part, un '\0' ou alors jusqu'à ce qu'elle sorte de l'espace mémoire qui lui est alloué.
Probablement. Mais pour être exact, le comportement est indéterminé => rien ne te permet de prédire et/ou garantir ce qui se passera.
Alors ce n'est pas une chaine mais un simple tableau de caractères que tu ne peux pas faire traiter par les fonctions str...()
Marsh Posté le 16-06-2010 à 03:12:07
Plop,
bon j'ai décidé d'apprendre un language fait piur les hommes, les vrais
alors j'ai acheté le "Language C" des 2 barbus,
je suis au chapitre 1 et j'essaie de faire des petites trucs tous cons avant de poursuivre mais je bloque déja :-(
les printf dans la fonction rstrip() devraient me renvoyer des valeurs différentes si la valeur de la chaîne entrée contient des espaces à la fin
"lalala "
mais j'obtiens toujours le même nombre de caractères, pourtant quand j'utilise reverse() tout seul ca marche, idem pour lstrip()
une idée? ca fait une heure je suis dessus