Exercice langage C: Les chaînes de caractères

Exercices sur les chaînes de caractères

1. Initialisation de chaîne de caractère :

Lesquelles des chaînes suivantes sont initialisées correctement ?

Corrigez les déclarations fausses et indiquez pour chaque chaîne de caractères le nombre d'octets qui sera réservé en mémoire.

a) char a[ ] = "un\ndeux\ntrois\n" ;

b) char b[12] = "un deux trois" ;

c) char c[] = 'abcdefg' ;

d) char d[10] = 'x' ;

e) char e[5] = "cinq" ;

f ) char f[] = "Cette " "phrase" "est coupée";

g) char g[2] = { 'a', '\0' };

h) char h[4] = { 'a', 'b', 'c' } ;

i) char i[4] = "'o'"

a) char a[] = "un\ndeux\ntrois\n";
Déclaration correcte
Espace: 15 octets
b) char b[12] = "un deux trois";
Déclaration incorrecte:
la chaîne d'initialisation dépasse le bloc de mémoire réservé.
Correction: char b[14] = "un deux trois";
ou mieux: char b[] = "un deux trois";
Espace: 14 octets
c) char c[] = 'abcdefg';
Déclaration incorrecte: Les symboles ' et ‘ encadrent des caractères;
pour initialiser avec une chaîne de caractères, il faut utiliser les guillemets (ou indiquer une liste de caractères).
Correction: char c[] = "abcdefg";
Espace: 8 octets
d) char d[10] = 'x';
Déclaration incorrecte: Il faut utiliser une liste de caractères ou une chaîne pour l'initialisation
Correction: char d[10] = {'x', '\0'} ou mieux: char d[10] = "x";
Espace: 2 octets
e) char e[5] = "cinq";
Déclaration correcte
Espace: 5 octets
f) char f[] = "Cette ", "phrase", "est coupée";
Déclaration incorrecte
On ne peut affecter plusieurs chaînes séparées ainsi.
g) char g[2] = {'a', '\0'};
Déclaration correcte
Espace: 2 octets
h) char h[4] = {'a', 'b', 'c'};
Déclaration incorrecte: Dans une liste de caractères, il faut aussi indiquer le symbole de fin de chaîne. Correction: char h[4] = {'a', 'b', 'c', '\0'};
Espace: 4 octets
i) char i[4] = "'o'";
Déclaration correcte, mais d'une chaîne contenant les caractères '\'', 'o', '\'' et '\0'.
Espace: 4 octets

Article publié le 19 Mars 2012 Mise à jour le Dimanche, 06 Novembre 2022 23:48 par Babachekhe Mohamed