|
|
Chaines
de caractères
"Strings" |
|
Définitions
d'une chaîne de caractères
|
|
| Une chaîne
de caractères peut s'enregistrer en mémoire comme un tableau
de type char.
Exemple : Eléments
utilisés dans ce programme : Tableaux.-
Boucle "for" :
Ce n'est pas très pratique à écrire car il faut compter les caractères. Certains
compilateurs acceptent : Ce problème
de nombre de caractères a été résolu de plusieurs
manières dans les divers langages:
Cette dernière forme présente de très nombreux avantages comme nous allons le voir dans les exemples qui vont suivre. A partir de maintenant, chaque fois que l'on prononcera le mot "chaîne de caractères" ou "chaîne" tout court, "string" en anglais, on renverra à cette dernièrere définition. |
|
Chaînes
littérales ("Chaine littérale")
|
|||
|
"Bonjour !"
est une chaîne au sens de C. La preuve ce programme :
Nous rappelons que "putchar('x')" est une procédure de la librairie "stdio" permettant d'afficher le caractère x à l'écran Interprétons : Nous avons déclaré
un pointeur de caractères et nous lui avons affecté la valeur
"Bonjour !" Par ailleurs, printf(p); affiche bien "Boujour !" à l'écran, ce qui prouve que p est bien le pointeur sur la chaîne de caractères "Bonjour !". Enfin, s'il fallait une autre preuve : p[3] est bien affiché comme la lettre 'j' ATTENTION !
|
|
Affichage
d'une chaîne à l'écran
|
|
|
Eléments utilisés dans ce programme : Tableaux - Algorithme while( ) {...;} - Variables booléennes Explications : ;while(Chaine[i]) |
|
Conversion
d'une chaîne en minuscules ou en majuscules
|
||
Ce programme
convertit toute la chaîne en minuscules. Explications : On peut
donc obtenir une minuscule en masquant une majuscule par l'octet 00100000
en binaire Donc
: Allons
plus loin, 0x20 est le code ASCII de l'espace qui s'écrit :
' ' (soit deux apostrophes séparées par un espace). Enfin,
si "lettre" désigne un identificateur de caractère,
elle sera systématiquement transformée en minuscule par
l'opération : lettre|=' '; On vous
laisse le soin de montrer que la transformation en majuscule se fait par
: lettre&=~' ';
Nous rappelons que le "tilde" ~ est l'opérateur
de complémentation bit à bit du langage C,
Observez comment on est arrivé à réduire le code en insérant les opérations :
|
|
Autres
procédures de conversion Min Maj
|
||
|
Rappelons
que l'on se base sur les codes ASCII
pour l'ordre alphabétique des caractères.
Dès lors, la conversion d'une chaîne en majuscules estr très simple, n'est-ce-pas ?
|
|
Comparaisons
de chaînes
|
|||
|
La procédure
suivante compare deux chaînes de caractères.
Variante dans le langage des pointeurs:
|
|
|