Flux rss
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îne 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' };

}

Utilisation de caractères spéciaux

Il existe des caractères repérés par un code ASCII spécial permettant d'effectuer des opérations particulières à l'écran, l'imprimante ou le beeper de l'ordinateur. Ces caractères peuvent être représentés plus simplement en langage C++ grâce au caractère '\' suivi d'une lettre, qui précise qu'il s'agit d'un caractère de contrôle :

Caractère Description
\0 caractère de fin de chaîne
\" guillemet
\\ barre oblique inverse (antislash)
\a signal sonore (bip)
\b retour en arrière (backspace)
\f saut de page (pour l'imprimante)
\n retour à la ligne
\t tabulation
\v tabulation verticale (pour l'imprimante)

En effet, certains de ces caractères ne pourraient pas être représentés autrement (un bip sonore ou un caractère de mise en page ne peuvent pas être représentés à l'écran). D'autre part, les caractères \ et " ne peuvent pas faire partie en tant que tels d'une chaîne de caractères, pour des raisons évidentes d'ambiguïté...

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

De nombreuses fonctions de manipulation de chaîne 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). Voici un bref aperçu de certaines de ces fonctions :

La fonction strcpy()

La fonction strcpy() (prononcez string copy) est une fonction qui permet de copier une chaîne entière de caractères dans une autre. Cette fonction admet comme paramètres les deux chaînes de caractères. Elle retourne 1 si la copie s'est effectuée correctement, sinon elle renvoie 0.

Syntaxe de la fonction strcpy() :

#include <string.h>

strcpy(Nom_de_la_chaine_destination,Nom_de_la_chaine_source);
ou encore :
strcpy(Nom_de_la_chaine_destination,"Chaîne de caractères");

La fonction strcmp()

La fonction strcmp() (prononcez string compare) est une fonction qui permet de comparer deux chaînes de caractères. En effet, il n'est pas possible d'effectuer simplement une comparaison de chaînes de caractères avec la simple utilisation des opérateurs habituels (==, !=, >=, etc.) à moins d'utiliser une boucle. Il est donc préférable d'utiliser cette fonction fournie en standard avec le C++. Cette fonction admet comme paramètres deux chaînes de caractères. Elle retourne 0 si les deux chaînes sont les mêmes. Si les chaînes sont différentes, elle renvoie bien évidemment 1.

Syntaxe de la fonction strcmp() :

#include <string.h>

strcmp(Nom_de_la_chaine1,Nom_de_la_chaine2);
ou encore :
strcmp(Nom_de_la_chaine1,"Chaîne de caractères");


Dernière modification le mardi 14 octobre 2008 à 17:40:30.Ce document intitulé « Les chaînes de caractères en C++ » 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.
Langage C - Les chaînes de caractères 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... www.commentcamarche.net/contents/c/cstring.php3
Calcul de la longueur d'une chaîne en c bonjour, il faut que je calcul la longueur d'une chaîne de caractére en langage c en utilisant la fonction 'strlen' #include #include main() { char *string; printf("entrez une chaine de caractére:\n);fflush(stdout);... www.commentcamarche.net/forum/affich-2769613-calcul-de-la-longueur-d-une-chaine-en-c
Diviser chaine caractere excel (Résolu) Bonjour, Je cherche une fonciton dans Excel qui me permet de diviser cette chaine caractere 27.03.2008 08:56:00; 03.04.2008 11:53:00; 10.04.2008 12:24:00 dans trois cellule différentes par exemple ici A1, A2, A3 A1= 27.03.2008 (ou A1= 27.03.2008... www.commentcamarche.net/forum/affich-6317967-diviser-chaine-caractere-excel
Les guillemets, apostrophes et les chaînesComment jouer avec les guillemets et les apostrophes dans les chaînes 1. Préambule 2. Éviter une coupure dans la chaîne 3. Ajouter un guillemet dans la chaîne 3.1 Avec l'apostrophe 3.2 Avec l'ASCII 3.3 Directement 3.3.1 Méthode... www.commentcamarche.net/faq/sujet-13095-les-guillemets-apostrophes-et-les-chaines
Exercice assembleur x86 inversion de chaîneIntroduction Notions abordées dans cet exercice Énoncé Rappel Indices Corrigé Explication Introduction Ce petit exercice d'assembleur vise les architectures x86 (Processeurs Intel et Amd 32 bits) et utilise la syntaxe de Nasm, un... www.commentcamarche.net/faq/sujet-9831-exercice-assembleur-x86-inversion-de-chaine
Javascript - Concaténation de chaînes de caractèresLe terme "concaténer" signifie joindre deux chaînes bout à bout pour n'en former qu'une seule. Dans la plupart des langages tels que PHP, la concaténation se fait avec le caractère ".". En javascript, il suffit d'utiliser le caractère plus (+) ou... www.commentcamarche.net/faq/sujet-16306-javascript-concatenation-de-chaines-de-caracteres
Pour expliquer un exercice de chaine caracterBonjour, Est-ce qu'il y aurait quelqu'un qui pourrait m'aider pour un exercice sur les chaines de caractàre car j'y comprend rien. Je vous serais très reconnaissant.Merci d'avance. www.commentcamarche.net/forum/affich-10640426-pour-expliquer-un-exercice-de-chaine-caracter
Liste chainée en C !Salut ! j'ai un pb au niveau des listes chainées. j'ai déclaré la structure et l'élément liste comme ca : typedef struct elem {char valeur; struct elem * suivant; } element; typedef element * liste; jusque là, il n'y a pas de pb, tt fonctionne. après,... www.commentcamarche.net/forum/affich-1200445-liste-chainee-en-c
Listes chainées en C++Salut à tous je veux améliorer mes connaissances en utilisant les listes chainées en C++; pour cela je veux quelq'un me donne un site des exercices avec solutions de ce dernier merci d'avance www.commentcamarche.net/forum/affich-1911657-listes-chainees-en-c
Javascript - Les chaînes de caractèresQu'est-ce qu'une chaîne de caractère Une chaîne de caractère est, comme son nom l'indique, une suite de caractères. On la représente par la suite de caractères encadrée par des guillemets simples (') ou doubles ("), sachant que les deux types de... www.commentcamarche.net/contents/javascript/jschar.php3
VBScript - Les fonctions de chaînes de caractèresLes fonctions de chaînes de caractères Fonction Description Filter(InputStrings, Value[, Include[, Compare]]) Sélectionne des chaînes de caractères parmi un tableau de chaînes... www.commentcamarche.net/contents/vbscript/vbs-fonctions-chaines-caracteres.php3
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