Menu

Comment déclarer un tableau de caractère (contient des caractère dans ses cases) [Résolu]

Messages postés
7
Date d'inscription
lundi 31 décembre 2018
Dernière intervention
9 janvier 2019
- - Dernière réponse : [Dal]
Messages postés
4874
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
18 janvier 2019
- 9 janv. 2019 à 13:23
En général qu'on doit faire pour déclarer un tab de caractere?
merci
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
12589
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
21 janvier 2019
764
1
Merci
Bonjour

La réponse est là https://lmqt.fyi/?q=C+declarer+tabelau

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 57248 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Whismeril
Messages postés
4874
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
18 janvier 2019
930
1
Merci
Salut SalimRT,

Tu as cet article sur CCM : https://www.commentcamarche.net/contents/118-langage-c-les-chaines-de-caracteres qui explique comment les chaînes de caractères fonctionnent en C.

1.

Dans ton message, tu demandes : "En général qu'on doit faire pour déclarer un tab de caractere?"

En général, pour juste déclarer un tableau de
char
, tu fais comme cela :
char s[TAILLE];
. Si ce tableau de
char
doit accueillir une chaîne de caractères, il faut que TAILLE soit égale à la taille maximale de la chaîne + 1, car une chaîne de caractères en C est un tableau de
char
contenant les caractères de la chaîne et terminé par le caractère nul
'\0'
, comme expliqué dans l'article.

Si ce tableau de
char
est déclaré dans main, comme il n'est pas initialisé à ce stade, il peut contenir n'importe quoi.

Après une telle déclaration, tu peux ensuite affecter des chaînes de caractères dans cet espace avec
strcpy()
ou d'autres fonctions disponibles dans
string.h
. Tu ne peux pas faire
s = "Bonjour";
...

2.

Dans ton titre tu demandes "Comment déclarer un tableau de caractère (contient des caractère dans ses cases)".

Si tu veux déclarer un tableau de char tout en l'initialisant avec une chaîne de caractères C donnée connue à la compilation, tu peux valablement utiliser le signe égal sur la même ligne que la déclaration. Par exemple de ces différentes façons :

char s1[256] = "Bonjour";
char s2[256] = {  'B', 'o', 'n', 'j', 'o', 'u', 'r', '\0'  };
char s3[256] = { '\0' };
char s4[] = "Bonjour";

s1
et
s2
font exactement la même chose,
s1
étant une version raccourcie, plus pratique. Dans les deux cas, le compilateur se charge d'initialiser l'espace de 256
char
à partir de l'index 0 avec chacune des 7 lettres de
"Bonjour"
(et dans le cas de
s2
avec le 8ème char indiqué
'\0'
, soit le caractère nul), puis le compilateur initialise le reste de l'espace jusqu'au 256ème
char
avec le caractère nul
'\0'
.

De façon similaire
s3
déclare un tableau de 256 char avec une chaîne "vide", en mettant le caractère nul
'\0'
en première position. Comme aucun autre caractère n'est fournit à l'initialisation, le compilateur se charge aussi de remplir le reste du tableau du caractère nul
'\0'
.

s4
est une autre version raccourcie, qui laisse le compilateur déterminer, lors de la compilation, la taille strictement nécessaire au stockage de la chaîne, donc ici 8
char
(7 + 1).

Après ces différentes déclarations, tu peux modifier le contenu des chaînes
s1
,
s2
,
s3
et
s4
, par exemple en y affectant autre chose avec
strcpy()
, mais tu ne pourras pas faire, par exemple
s4 = "Salut";
.

3.

Les chaînes de caractères
s1
,
s2
,
s3
et
s4
ont le type tableau de
char
.

En matière de chaînes de caractères, le C permet aussi de travailler avec des pointeurs sur char, pointant sur une zone mémoire allouée par le programme ou allouée au programme.

Mais comme ta question porte sur les tableaux, je m'arrêterai là :-)

Dal

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 57248 internautes nous ont dit merci ce mois-ci

Commenter la réponse de [Dal]