Flux rss
Collection CommentÇaMarche.net
Bookmark Ajouter aux favoris / Partager

Qu'est-ce qu'une chaîne de caractères ?

Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII.

En langage C, une chaîne de caractères est un tableau, comportant plusieurs données de type char, dont le dernier élément est le caractère nul '\0', c'est-à-dire le premier caractère du code ASCII (dont la valeur est 0).
Ce caractère est un caractère de contrôle (donc non affichable) qui permet d'indiquer une fin de chaîne de caractères. Ainsi une chaîne composée de n éléments sera en fait un tableau de n+1 éléments de type char.
On peut par exemple représenter la chaîne « Bonjour » de la manière suivante :

Bonjour\0

Créer une chaîne de caractères

Pour définir une chaîne de caractères en langage C, il suffit de définir un tableau de caractères. Le nombre maximum de caractères que comportera la chaîne sera égal au nombre d'éléments du tableau moins un (réservé au caractère de fin de chaîne).

 char Nom_du_tableau[Nombre_d_elements]

  • Le nombre d'éléments que comporte le tableau définit la taille maximale de la chaîne, on peut toutefois utiliser partiellement cet espace en insérant le caractère de fin de chaîne à l'emplacement désiré dans le tableau.

Astuce ! En définissant le tableau de la manière suivante, vous mettez en évidence le nombre de caractères maximal de la chaîne :

 char Nom_du_tableau[Nombre_d_elements + 1]

Par exemple :
 char Chaine[50 + 1]

Initialiser une chaîne de caractères

Comme généralement en langage C, il faut initialiser votre chaîne de caractères, c'est-à-dire remplir les cases du tableau avec des caractères, sachant que celui-ci devra obligatoirement contenir le caractère de fin de chaîne '\0'.
Il y a deux façons de procéder :

  • remplir manuellement le tableau case par case
  • utiliser les fonctions de manipulation de chaînes fournies dans les librairies standard

Voici un exemple d'initialisation manuelle de chaîne de caractères :

#include <stdio.h>

void main(){
	char Chaine[20+1];

	Chaine[0]= 'B';

	Chaine[1]= 'o';

	Chaine[2]= 'n';

	Chaine[3]= 'j';

	Chaine[4]= 'o';

	Chaine[5]= 'u';

	Chaine[6]= 'r';

	Chaine[7]= '\0';

}

Voici une autre façon (plus simple) d'initialiser une chaîne de caractères :

#include <stdio.h>

void main(){
	char Chaine[20+1]={ 'B', 'o', 'n', 'j', 'o', 'u', 'r', '\0' };

}

Les fonctions de manipulation de chaînes de caractères

De nombreuses fonctions de manipulation de chaînes sont directement fournies. Ces fonctions se trouvent dans le fichier d'en-tête <string.h>, c'est la raison pour laquelle il faut ajouter la ligne suivante en début de programme :

#include <string.h>

Le fichier <string.h> contient les prototypes de nombreuses fonctions permettant de simplifier l'utilisation et la manipulation de chaînes (environ une quarantaine).

Dernière modification le mardi 14 octobre 2008 à 17:40:26.Ce document intitulé « Langage C - Les chaînes de caractères » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Les chaînes de caractères en C++ Qu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une... www.commentcamarche.net/contents/cpp/cppstring.php3
C comparaison caracteres salut tout le monde bon je bloque sur un truc tout bete: je suis en langage C et je cherche a comparer 2 caractere donc j'ai deux chaines de caracteres temp et longueur longueur est vide et temp comtient un truc du genre "240 60" et dans longueur je... www.commentcamarche.net/forum/affich-1834621-c-comparaison-caracteres
[langage C] code ascii d'un caractere... (Résolu) bonjour a tous.. j'aurai voulu savoir comment retourner le code ASCII d'une valeur d'un tableau de caractere.. int i,j ; char tab[133]; for(i=0;i www.commentcamarche.net/forum/affich-1544851-langage-c-code-ascii-d-un-caractere
Les piles en langage CLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage... www.commentcamarche.net/faq/sujet-8283-les-piles-en-langage-c
[Langage C] C/C++ Erreur de segmentationQu'est ce qu'une erreur de segmentation Vous êtes en train de développer une application sous Linux en C/C++. Tout va bien, ça compile, les oiseaux chantent. Donc vous lancez votre application pour la tester. Et vous obtenez l'un de ces deux... www.commentcamarche.net/faq/sujet-4791-langage-c-c-c-erreur-de-segmentation
Les files en langage CLes files - Premier Entré Premier Sorti Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la file IV. Opérations sur les files A. Initialisation B. Insertion d'un élément dans la file C. Oter un... www.commentcamarche.net/faq/sujet-8282-les-files-en-langage-c
Conversion Binaire/Hexadécimal en langage CBonjour à tous, je voudrai écrire un programme permettant la conversion d'un chiffre binaire en hexadécimal en langage C. Et pour cela j'aimerai utilisé une chaine de caractère pour représenter le nombre binaire, ainsi qu'une autre pour le résultat en... www.commentcamarche.net/forum/affich-4350548-conversion-binaire-hexadecimal-en-langage-c
Langage C pointeurs, creation de liste. (Résolu)Bonjour a tous. Voila, je rencontre quelaues petits preoblemes en langage C. Le but est de creer des fiches afin de creer une listes les contenant. Il faut ensuite afficher ce que l on a entre dans chaque fiche, puis afficher enfin le nombre de fiches... www.commentcamarche.net/forum/affich-2170245-langage-c-pointeurs-creation-de-liste
Lecture fichier langage CBonjour je cherche comment lire un fichier en langage C sous la forme ci-dessous (il ya un espace entre chaque caractere) : a b b c c d Merci d'avance à tous ceux qui m'aiderons. www.commentcamarche.net/forum/affich-690971-lecture-fichier-langage-c
Langage C - Les variablesLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C sont typées, c'est-à-dire que les données contenues dans... www.commentcamarche.net/contents/c/cvar.php3
Langage C++ - Les types de donnéesLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître... www.commentcamarche.net/contents/cpp/cpptype.php3
Langage C - Les types de donnéesLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le... www.commentcamarche.net/contents/c/ctype.php3