Une chaîne de caractère (string en anglais) est un format particulier de tableau
destiné à stocker des caractères alphanumériques, c'est à dire du texte. Un exemple
classique de chaîne de caractères est le premier paramètre de la fonction printf()
:
printf("Hello!");
Dans l'exemple ci-dessus, "Hello!"
est une chaîne de caractères.
Notez que les chaînes de caractères sont encadrées par des guillemets doubles.
C'est de cette façon que les chaînes de caractères sont spécifiées en C.
Une chaîne de caractères est un cas particulier des tableaux de caractères, dont ils partagent la syntaxe. L'exemple suivant déclare :
char texte[10];
Dans cette section sur les chaînes de caractères, nous allons utiliser la
bibliothèque standard string.h
qui contient les fonctions de base au traitement
des chaînes de caractères :
#include <string.h>
Une chaîne de caractères étant un tableau, il est possible de l'initialiser à la déclaration caractère par caractères :
char texte[] = {'H','e','l','l','o','!','\0'};
Notez au passage que le dernier caractère est '\0'
qui est le premier caractère de
la table ASCII.
Toutefois, il existe une façon plus conviviale d'initialiser une chaîne de caractères à la déclaration :
char text[] = "Hello!";
En C, les guillemets doubles marquent le début et la fin d'une chaîne de caractères
(comme dans la fonction printf()
). Attention à ne pas confondre cette syntaxe avec
les guillemets simples qui sont destinés à spécifier un caractère unique :
// Caractère unique
char c = 'L';
// Chaîne de caractères
char text[] = "Mon texte";
Voici un exemple de création de chaîne de caractères :
// Déclare et initialise une chaîne de caractères
char texte[] = "This is a string.";
// Affiche la chaîne de caractères
printf ("%s\n", texte);
// Affiche la taille du tableau et de la chaîne
printf ("Taille du tableau : %ld octets\n", sizeof(texte));
printf ("Taille de la chaîne : %ld caractères\n", strlen(texte));
// Affiche les premières cellules du tableau
printf ("texte[0] = %c\n", texte[0]);
printf ("texte[1] = %c\n", texte[1]);
printf ("texte[2] = %c\n", texte[2]);
printf ("texte[3] = %c\n", texte[3]);
Quelques remarques sur cet exemple :
%s
est le code de format qui permet d'afficher une chaîne de caractères.sizeof()
retourne la taille du tableau (qui n'est pas la même que la chaîne de caractères).strlen()
retourne le nombre de caractères dans la chaîne.texte[i]
permet d'accéder au (i+1)ème caractère de la chaîne (ou la (i+1)ème cellule du tableau).Écrire un programme qui déclare une chaîne de caractère url
contenant le texte https://lucidar.me
.
Afficher :
Contenu de la chaîne : https://lucidar.me Taille du tableau : 19 octets Taille de la chaîne : 18 caractères
On donne la déclaration de la chaîne suivante :
char str[] = "string";
À l'aide d'une boucle, parcourir un à un les caractères de la chaîne afin de les afficher sous forme :
Utilisez sizeof()
pour déterminer la longueur du tableau dans la boucle. Voici
l'affichage attendu de cet exercice :
str[0] = 's' = 115 = 0x73 str[1] = 't' = 116 = 0x74 str[2] = 'r' = 114 = 0x72 str[3] = 'i' = 105 = 0x69 str[4] = 'n' = 110 = 0x6E str[5] = 'g' = 103 = 0x67 str[6] = '' = 0 = 0x00
En C, une chaîne de caractères ...
Quelle bibiothèque contient les fonctions élémentaire pour les chaînes de caractères ?
string.h
est une bibliothèque très utlisée.
Essaie encore ...
Qu'affiche le code suivant :
char str[100] ="Coucou";
printf ("sizeof = %ld", sizeof(str));
sizeof()
.
Essaie encore ...
Qu'affiche le code suivant :
char str[100] ="Coucou";
printf ("strlen = %ld", strlen(str));
strlen()
.
Essaie encore ...