A propos des chaînes de caractères

Résolu
OzStrycker Messages postés 6 Date d'inscription dimanche 26 mai 2002 Statut Membre Dernière intervention 12 juillet 2005 - 12 juil. 2005 à 13:10
OzStrycker Messages postés 6 Date d'inscription dimanche 26 mai 2002 Statut Membre Dernière intervention 12 juillet 2005 - 12 juil. 2005 à 14:52
Bonjour,



Voilà j'ai lu dans beaucoup de tutoriels que les chaînes de caractères
sont des tableaux de caractères terminés par un 0. Bon jusque là OK,
mais je ne comprends pas l'utilité du 0 final ? Que je le mette ou pas,
lorsque je lui demande d'afficher ma chaîne de caractères avec un
printf("%s",chaine); tout se passe bien qu'il y ai un zéro final ou pas
!!



Je ne comprends donc pas l'utilité de ce 0 ? Sert-il en programmation plus avancée ?



Merci de m'éclaircir.



Mon compilateur : gcc 3.3.6 sous Linux (distribution : Debian Sarge)

5 réponses

BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 103
12 juil. 2005 à 14:06
Le caractère '\0' est effectivement le caractère de fin de chaine.
Toutes les fonctions de manipulation de char * en C s'appuie sur ce
caractère pour déterminer la fin de chaine.



Par exemple, strlen() retourne la longueur de la chaine: comment
fais-tu pour la calculer si tu n'as aucun moyen de svoir où la chaine
se termine?




Buno
----------------------------------------
L'urgent est fait, l'impossible est en train de se faire. Pour les miracles, prévoir un délai...
3
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
12 juil. 2005 à 13:18
Bé l'utilité

Fait un fread( ... ) avec un fichier :)

affiche ta chaîne sans \0

Met un \0

et affiche ta chaine :)



La magie opère :p lol
void Aurevoir( void ); //Bonne journée
0
OzStrycker Messages postés 6 Date d'inscription dimanche 26 mai 2002 Statut Membre Dernière intervention 12 juillet 2005
12 juil. 2005 à 13:58
Ok j'irais voir cette magie ce soir mais concrètement ce \0 indique quoi ? la fin de la chaîne de caractères c'est ça ? Faut le comprendre comme ça ? Parce que j'ai lu partout qu'il ne fallait surtout pas l'oublier, que c'était important, mais personne ne dit à quoi ça correspond !!!
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
12 juil. 2005 à 14:03
ben ça correspond justement à la fin de la chaine.
Comment savoir où elle finit sinon ???

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
OzStrycker Messages postés 6 Date d'inscription dimanche 26 mai 2002 Statut Membre Dernière intervention 12 juillet 2005
12 juil. 2005 à 14:52
En effet ça parait logique vu sous cet angle ! Merci pour vos réponses !

Bonne journée.
0