FriconiX
Des milliers de pictogrammes gratuits dessinés avec amour!

Cours 10.1. Les chaines de caractères

Introduction

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.

Syntaxe

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>

Initialisation

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 guillements 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 guillements 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".

Exemple

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 :

Exercices

Exercice 1

É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

Exercice 2

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

Quiz

En C, une chaîne de caractères ...

Vérifier Bravo ! Essaie encore ...

Quelle bibiothèque contient les fonctions élémentaire pour les chaînes de caractères ?

Vérifier Bravo ! Essaie encore ...

Qu'affiche le code suivant :

char str[100] ="Coucou";
printf ("sizeof = %ld", sizeof(str));
Vérifier Bravo ! Essaie encore ...

Qu'affiche le code suivant :

char str[100] ="Coucou";
printf ("strlen = %ld", strlen(str));
Vérifier Bravo ! Essaie encore ...

Voir aussi


Dernière mise à jour : 08/11/2020