Caractères bizarres à l'affichage
Résolu
Unnamed_Man
Messages postés
47
Statut
Membre
-
Unnamed_Man Messages postés 47 Statut Membre -
Unnamed_Man Messages postés 47 Statut Membre -
Bonjour,
Voici mon code :
char table[5];
for (int i = 0; i < 5; i++)
{
table[i] = '-';
}
printf("%s", table);
Voici le résultat :
-----♣
Je ne comprends pas pourquoi quand j'exécute un code similaire je retrouve toujours des caractères bizarres à la fin. Quelqu'un peut m'éclairer svp ?
--
N'oubliez pas de mettre le sujet en "résolu" lorsqu'il l'est et un petit "merci" fait toujours plaisir ;-)
Voici mon code :
char table[5];
for (int i = 0; i < 5; i++)
{
table[i] = '-';
}
printf("%s", table);
Voici le résultat :
-----♣
Je ne comprends pas pourquoi quand j'exécute un code similaire je retrouve toujours des caractères bizarres à la fin. Quelqu'un peut m'éclairer svp ?
--
N'oubliez pas de mettre le sujet en "résolu" lorsqu'il l'est et un petit "merci" fait toujours plaisir ;-)
2 réponses
-
Bonjour,
En C, une chaîne de caractère est une suite de char terminée par le caractère '\0'.
Comme tu n'as pas terminé ta chaîne, printf tente d'afficher des caractères à la suite de l'espace mémoire réservé à ton tableau de char en dépassant cet espace, c'est à dire n'importe quoi et s'arrête lorsqu'il trouve par hasard 0 en mémoire.
Un typechar table[5];
permet de stocker une chaîne d'un maximum de 4 chars, le 5ème emplacement devant être disponible pour terminer la chaîne.
Ton code devait être :
char table[5]; for (int i = 0; i < 4; i++) { table[i] = '-'; } table[4] = '\0'; printf("%s\n", table);
Pour afficher :
----
Dal -
Ah ouiii, merci ! Je l'oublie tout le temps ce fameux caractère sentinelle !