Question sur les tableaux de caractères en c
Résolu
sophie34
-
loupius Messages postés 697 Date d'inscription Statut Membre Dernière intervention -
loupius Messages postés 697 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Question sur les tableaux de caractères en c
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Caractères spéciaux mac - Guide
- Exemple de mot de passe à 8 caractères - Guide
- Caracteres speciaux - Guide
2 réponses
ah ben oui, c'est parce qu'un tableau représentant une chaîne à pour caractères dans la dernière case un '\0', donc voila tout s'explique :)
Bonjour
Alors plusieurs choses
lorsque tu fais nom[5] = ...
tu lui demande de faire une affectation dans la case 5 du tableau
ton tableau étant un tableau de char tu dois donc lui affecter un char donc nom[0] = 'm'
ensuite les tableaux commence toujours par l'indice 0 donc si tu fais char[5] ton tableau fera 6 cases...
après si tu veux vraiment avoir ce genre de forme pour créer ton tableau voila ce que tu dois faire (enfin si je me souviens bien de la syntaxe :p)
char[] nom = {'m','e','r','c','i'};
La syntaxe est celle pour du java mais cela dois être a peu près la même en c ;)
Adns
Alors plusieurs choses
lorsque tu fais nom[5] = ...
tu lui demande de faire une affectation dans la case 5 du tableau
ton tableau étant un tableau de char tu dois donc lui affecter un char donc nom[0] = 'm'
ensuite les tableaux commence toujours par l'indice 0 donc si tu fais char[5] ton tableau fera 6 cases...
après si tu veux vraiment avoir ce genre de forme pour créer ton tableau voila ce que tu dois faire (enfin si je me souviens bien de la syntaxe :p)
char[] nom = {'m','e','r','c','i'};
La syntaxe est celle pour du java mais cela dois être a peu près la même en c ;)
Adns
Attention:
donc si tu fais char[5] ton tableau fera 6 cases...
Non, en C, si tu déclares char tableau[5], ton tableau fera 5 cases et pour le parcourir tu devras aller de 0 à 4. Si tu veux déclarer une chaîne de 5 caractères (qui par convention sera terminée par un '\0'), il faudra écrire char chaine[6]. La déclaration pouvant se faire par char chaine[6] = {"merci"} ou plus simplement par char chaine[] = {"merci"} ou plus simplement encore par char chaine[] = "merci".
La déclaration char nom[] = {'m','e','r','c','i'} ne déclare pas un tableau contenant une chaîne de caractères mais seulement un tableau contenant 5 caractères; il n'y a pas d'ajout du caractère terminal '\0'.
Bonne continuation.
donc si tu fais char[5] ton tableau fera 6 cases...
Non, en C, si tu déclares char tableau[5], ton tableau fera 5 cases et pour le parcourir tu devras aller de 0 à 4. Si tu veux déclarer une chaîne de 5 caractères (qui par convention sera terminée par un '\0'), il faudra écrire char chaine[6]. La déclaration pouvant se faire par char chaine[6] = {"merci"} ou plus simplement par char chaine[] = {"merci"} ou plus simplement encore par char chaine[] = "merci".
La déclaration char nom[] = {'m','e','r','c','i'} ne déclare pas un tableau contenant une chaîne de caractères mais seulement un tableau contenant 5 caractères; il n'y a pas d'ajout du caractère terminal '\0'.
Bonne continuation.