Programmer en langage C
146
© Éditions Eyrolles
Mais, comme il n’existe pas de variables de type chaîne, il faudra prévoir un emplacement
pour accueillir ces informations. Un tableau de caractères pourra faire l’affaire. C’est
d’ailleurs ce que nous utiliserons dans ce chapitre. Mais nous verrons plus tard comment créer
dynamiquement des emplacements mémoire, lesquels seront alors repérés par des pointeurs.
1 Représentation des chaînes
1.1 La convention adoptée
En C, une chaîne de caractères est représentée par une suite d’octets correspondant à chacun
de ses caractères (plus précisément à chacun de leurs codes), le tout étant terminé par un octet
supplémentaire de code nul. Cela signifie que, d’une manière générale, une chaîne de n caractères occupe en mémoire un emplacement de n+1 octets.
1.2 Cas des chaînes constantes
C’est cette convention qu’utilise le compilateur pour représenter les « constantes chaîne »
(sous-entendu que vous les introduisez dans vos programmes), sous des notations de la forme :
"bonjour"
De plus, une telle notation sera traduite par le compilateur en un pointeur (sur des éléments de
type char) sur la zone mémoire correspondante.
Voici un programme illustrant ces deux particularités :
La déclaration :
char * adr ;
Convention de représentation des chaînes
#include
main()
{ char * adr ;
bonjour
adr = "bonjour" ;
while (*adr)
{ printf ("%c", *adr) ;
adr++ ;
}
}
Delannoy Livre.book Page 146 Mercredi, 6. mai 2009 4:26 16
146
© Éditions Eyrolles
Mais, comme il n’existe pas de variables de type chaîne, il faudra prévoir un emplacement
pour accueillir ces informations. Un tableau de caractères pourra faire l’affaire. C’est
d’ailleurs ce que nous utiliserons dans ce chapitre. Mais nous verrons plus tard comment créer
dynamiquement des emplacements mémoire, lesquels seront alors repérés par des pointeurs.
1 Représentation des chaînes
1.1 La convention adoptée
En C, une chaîne de caractères est représentée par une suite d’octets correspondant à chacun
de ses caractères (plus précisément à chacun de leurs codes), le tout étant terminé par un octet
supplémentaire de code nul. Cela signifie que, d’une manière générale, une chaîne de n caractères occupe en mémoire un emplacement de n+1 octets.
1.2 Cas des chaînes constantes
C’est cette convention qu’utilise le compilateur pour représenter les « constantes chaîne »
(sous-entendu que vous les introduisez dans vos programmes), sous des notations de la forme :
"bonjour"
De plus, une telle notation sera traduite par le compilateur en un pointeur (sur des éléments de
type char) sur la zone mémoire correspondante.
Voici un programme illustrant ces deux particularités :
La déclaration :
char * adr ;
Convention de représentation des chaînes
#include
main()
{ char * adr ;
bonjour
adr = "bonjour" ;
while (*adr)
{ printf ("%c", *adr) ;
adr++ ;
}
}
Delannoy Livre.book Page 146 Mercredi, 6. mai 2009 4:26 16
