9. Chaînes de caractères

• Définition d’une chaîne de caractères
• Acquisition et affichage d’une chaîne de caractères
• Fonctions liées à la chaîne de caractères
• Exemples et tâches avec des chaînes de caractèrs

 
 

9. Chaînes de caractères


La chaîne de caractères est une suite de symboles entre guillemets. Le nombre de caractères dans la chaîne de caractères détermine la longueur de la chaîne.

Définition d’une chaîne de caractères

En C/C++ les chaînes de caractères sont traitées comme tableaux de caractères:

char aa variable_chaîne_de_caractère[nombre de symboles];

Exemple:
char firstName[20], familyName[20];

Le symbole ‘\0’ /ayant le code ASCII zéro/ est utilisé pour marquer la fin de la chaîne de caractères. Dans le cas général la longueur d’une chaîne de caractères doit être plus grande /au moins avec 1/ du nombre de symboles sauvegardés dans la chaîne. Cette position est nécessaire pour additionner automatiquement le symbole ‘\0’.

Acquisition et affichage d’une chaîne de caractères

A la différence des tableaux numériques les chaînes de caractères sont saisies et affichées utilisant seulement une instruction, par exemple:
char firstName[21]; cin>> firstName; cout<< firstName; D’autre part, les chaînes de caractères sont également considerées comme des tableaux de caractères. C’est pourquoi elles peuvent être saisies et affichées séparément, élément par élément. for(int i=0;i<20;i++) cin>>firstName[i]; for(i=0;i<20;i++) cout << firstName[i]; Dans ce cas précisément 20 éléments sont saisis et sont affichés.

• Fonctions liées à la chaîne de caractères

La plus grande partie des fonctions liées aux caractères sont définies dans le fichier string.h.

- fonction strlen:

strlen(chaîne_de_caractère_arbitraire)

Retourne la longueur de la chaîne.

Exemple. Trouvez la longueur de la chaîne "name":
#include < iostream.h > #include < string.h > int main() { char name[20]="Ivan Petrov"; cout<<"La chaîne : "<< name <<" a longueur "<< strlen(name); cout<<" symboles. "; return 0; } - fonction strcat:

strcat(variable_chaîne_de_caractères , chaîne_de_caractère_arbitraire )

Ajoute chaîne_de_caractère_arbitraire à la fin de la variable_chaîne_de_caractères.

Exemple: Trouver le nom si le prénom est firstName et le nom de famille est familyName:
#include < iostream.h > #include < string.h > int main(){ char firstName[20]="Ivan", familyName[20]="Petrov"; char name[45]=""; strcat(name,firstName); strcat(name," "); strcat(name,familyName); cout<< name<< endl; return 0; } - fonction strcmp:

strcmp(chaîne_de_caractère_arbitraire1, chaîne_de_caractère_arbitraire2)

Compare les deux chaînes de caractères utilisant le code ASCII du symboles. Retourne un entier positif, négatif ou 0 selon le résultat de la comparaison.

Exemple:

cout<< strcmp("Ann", "Anetа”)<< endl; // affiche un entier positif.

- fonction strcpy:

strcpy(variable_chaîne_de_caractères , chaîne_de_caractère_arbitraire)

On fait une copie de la chaîne_de_caractère_arbitraire dans une variable_chaîne_de_caractères.

Exemple. Le code suivant affiche la chaîne "Ivan":
char firstName[5]="Ivan"; char name[20]; strcpy(name, firstName); cout<< name<< endl;