A propos des chaînes de caractères

Résolu
Signaler
Messages postés
6
Date d'inscription
dimanche 26 mai 2002
Statut
Membre
Dernière intervention
12 juillet 2005
-
Messages postés
6
Date d'inscription
dimanche 26 mai 2002
Statut
Membre
Dernière intervention
12 juillet 2005
-
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

Messages postés
15187
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
26 novembre 2021
100
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...
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
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
Messages postés
6
Date d'inscription
dimanche 26 mai 2002
Statut
Membre
Dernière intervention
12 juillet 2005

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 !!!
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
ben ça correspond justement à la fin de la chaine.
Comment savoir où elle finit sinon ???

ciao...
BruNews, MVP VC++
Messages postés
6
Date d'inscription
dimanche 26 mai 2002
Statut
Membre
Dernière intervention
12 juillet 2005

En effet ça parait logique vu sous cet angle ! Merci pour vos réponses !

Bonne journée.