Loading lang_c_05_strings...

enib_small.png LANG-C 05_Strings — Chaînes de caractères

Jusqu'alors, l'essentiel des types de données présentés est dédié à un usage arithmétique ou logique (booléens, entiers, réels et leurs variantes).
Les pointeurs et les tableaux font exception à cette tendance mais ne représentent finalement qu'un moyen indirect de manipuler les types précédents.
Dans cette section, il est toutefois mentionné le type char qui est usuellement utilisé pour représenter des caractères.
Nous verrons qu'il n'existe pas à strictement parler de type pour représenter les chaînes de caractères en langage C, mais des facilités pour considérer des séquences de char en tant que telles.

Bien que ce chapitre ne soit pas conçu comme une expérimentation pratique, n'hésitez cependant pas à incorporer les exemples proposés dans un programme minimal.
{1 #sequence } Séquences de caractères
{2 #init } Initialisation des chaînes de caractères
{3 #functions } Les fonctions de manipulation de chaînes
{4 #command } La ligne de commande

Ce chapitre s'est largement appuyé sur les tableaux et les pointeurs pour introduire la notion de chaîne de caractères.
Il ne s'agit en effet aucunement d'un type de base du langage mais d'une construction à partir d'une séquence de char.

Ces derniers sont de petits entiers dont la correspondance avec des caractères repose sur la table ASCII.
Le langage offre une facilité pour les saisir de manière littérale (les apostrophes) et la bibliothèque standard propose des fonctions traitant ces caractères par catégories (lettres, chiffres, ponctuation...).

Les chaînes de caractères sont terminées par un caractère nul.
Le langage offre une facilité pour les saisir de manière littérale (les guillemets) et la bibliothèque standard propose des fonctions permettant de les manipuler (longueur, recopie, comparaison...).

La ligne de commande saisie lors du lancement d'un programme est accessible à ce dernier sous la forme d'un tableau de chaînes de caractères transmis à la fonction main().

Bien qu'il s'agisse d'un type élaboré, les chaînes de caractères à zéro terminal sont tellement omniprésentes dans les programmes en langage C que leur maîtrise est aussi indispensable que celle des types de base.