C++ Fonctions de chaînes de caractères : strcpy(), strcat(), strlen(), strcmp()
⚡ Résumé intelligent
C++ Les fonctions de manipulation de chaînes de caractères, telles que `strcpy`, `strcat`, `strlen` et `strcmp`, permettent de copier, concaténer, mesurer et comparer du texte. Cette ressource explique ce qu'est une chaîne de caractères, comment déclarer des chaînes de style C et des chaînes de type `std::string`, accéder à leurs valeurs et utiliser les fonctions de base à l'aide d'exemples.

Qu'est-ce qu'une chaîne ?
Une chaîne est une séquence de caractères. UN C++ La classe `string` est un objet de l'interface `std::string`. Les caractères sont stockés sous forme de séquences d'octets, chaque octet correspondant à un caractère étant accessible individuellement.
C++ Les chaînes de caractères allouent la mémoire de manière dynamique. Il est possible d'allouer davantage de mémoire à une chaîne pendant l'exécution si nécessaire. L'absence de pré-allocation de mémoire évite tout gaspillage. On peut effectuer diverses opérations sur les chaînes de caractères, telles que la comparaison, la concaténation et la conversion.
Déclaration de chaînes
C++ prend en charge deux types de déclarations de chaîne :
- Chaîne de caractères de style C
- Type de classe de chaîne
Chaîne de caractères de style C
Ce type de déclaration de chaîne a été introduit dans le Langage de programmation C. C++ Il continue de le prendre en charge. Il s'agit simplement d'un tableau unidimensionnel de caractères se terminant par un caractère nul (\0). Une chaîne terminée par un caractère nul est composée des caractères qui la constituent, suivis d'un caractère nul.
Considérez la déclaration de chaîne ci-dessous :
char name[5] = {'J', 'o', 'h', 'n', '\0'};
La déclaration ci-dessus crée une chaîne de caractères formant le mot « John ». Ce mot comporte 4 caractères, mais la chaîne a une longueur de 5. L'espace supplémentaire permet d'inclure le caractère nul.
En utilisant la règle d'initialisation du tableau, nous pouvons écrire l'instruction ci-dessus comme suit :
char name[] = "John";
Notez qu'il n'est pas nécessaire de placer le caractère nul à la fin de la constante de chaîne. C++ le compilateur placera automatiquement le '\0' à la fin de la chaîne lors de l'initialisation du tableau.
std :: string
La norme C++ La bibliothèque fournit la classe string, qui prend en charge diverses opérations sur les chaînes de caractères. Elle s'écrit std::string.
Pour utiliser cette classe, nous devons d'abord l'inclure dans notre espace de travail à l'aide du préprocesseur #include comme indiqué ci-dessous :
#include <string>
Ensuite, nous pouvons déclarer notre chaîne en utilisant le mot-clé string. Par exemple:
string name = "John";
L'instruction ci-dessus créera une chaîne nommée name pour contenir la valeur John.
Accéder aux valeurs de chaîne
In C++, nous pouvons accéder aux valeurs de chaîne en utilisant le nom de la chaîne. Par exemple:
#include <iostream> using namespace std; int main() { char name[5] = { 'J', 'o', 'h', 'n', '\0' }; cout << "String value is: "; cout << name << endl; return 0; }
Sortie :
Voici une capture d'écran du code :
Code Explication:
- Y compris le fichier d'en-tête iostream dans notre code. Cela nous permettra de lire et d'écrire sur la console.
- Y compris l'espace de noms std afin d'utiliser ses classes et fonctions sans l'appeler.
- Appel de la fonction main() dans laquelle la logique du programme doit être ajoutée. L'accolade ouvrante { marque le début du corps de la fonction main().
- Déclarer une chaîne de caractères et lui donner le nom name. La chaîne stockera la valeur John. L'espace supplémentaire stockera le caractère nul.
- Impression du texte sur la console.
- Impression de la valeur de la chaîne nommée name sur la console.
- La fonction main() doit renvoyer une valeur si le programme fonctionne correctement.
- Fin du corps de la fonction main().
Voici un autre exemple utilisant le C++ classe de chaîne standard :
#include <iostream> #include <string> using namespace std; int main() { string name = "Guru99"; cout << "The name is : " << name << endl; return 0; }
Sortie :
Voici une capture d'écran du code :
Code Explication:
- Y compris le fichier d'en-tête iostream dans notre code. Cela nous permettra de lire et d'écrire sur la console.
- Y compris la classe de chaîne standard dans notre code.
- Y compris l'espace de noms std afin d'utiliser ses classes et fonctions sans l'appeler.
- Appel de la fonction main() dans laquelle la logique du programme doit être ajoutée. L'accolade ouvrante { marque le début du corps de la fonction main().
- Déclarer une chaîne de caractères et lui donner le nom « name ». Cette chaîne stockera la valeur. Guru99.
- Impression de la valeur du nom de chaîne à côté du texte sur la console.
- La fonction main() doit renvoyer une valeur si le programme fonctionne correctement.
- Fin du corps de la fonction main().
Fonctions de chaîne dans C++
Vous aurez souvent envie de manipuler des chaînes. C++ offre un large éventail de fonctions que vous pouvez utiliser à cette fin. Ces fonctions sont définies dans le Il s'agit d'un en-tête, nous devons donc l'inclure dans notre code pour pouvoir utiliser les fonctions. Examinons-en quelques-unes :
strcpy ()
Il s'agit de la fonction de copie de chaîne. Il copie une chaîne dans une autre chaîne.
syntaxe:
strcpy(string1, string2);
Les deux paramètres de la fonction, string1 et string2, sont des chaînes de caractères. La fonction copiera la chaîne string2 dans string1.
strcat ()
Il s'agit de la fonction de concaténation de chaînes. Il concatène les chaînes.
syntaxe:
strcat(string1, string2);
Les deux paramètres de la fonction, string1 et string2, sont les chaînes de caractères à concaténer. La fonction ci-dessus concatène la chaîne string2 à la fin de la chaîne string1.
strlen()
Il s'agit de la fonction de longueur de chaîne. Il renvoie la longueur de la chaîne qui lui est passée en argument.
syntaxe:
strlen(string1);
Le paramètre string1 est le nom de la chaîne dont on veut déterminer la longueur. La fonction ci-dessus renverra la longueur de la chaîne string1.
strcmp()
Il s'agit de la fonction de comparaison de chaînes. Il est utilisé pour la comparaison de chaînes.
syntaxe:
strcmp(string1, string2);
La fonction ci-dessus renverra 0 si les chaînes de caractères string1 et string2 sont similaires, une valeur inférieure à 0 si string1 < string2, et une valeur supérieure à 0 si string1 > string2.
Exemple :
L'exemple suivant montre comment utiliser les fonctions de chaîne ci-dessus :
#include <iostream> #include <cstring> using namespace std; int main() { char name1[10] = "Guru99"; char name2[10] = "John"; char name3[10]; int len; strcpy(name3, name1); cout << "strcpy( name3, name1) : " << name3 << endl; strcat(name1, name2); cout << "strcat( name1, name2): " << name1 << endl; len = strlen(name1); cout << "strlen(name1) : " << len << endl; return 0; }
Sortie :
Voici une capture d'écran du code :
Code Explication:
- Y compris le fichier d'en-tête iostream dans notre code. Cela nous permettra de lire et d'écrire sur la console.
- Y compris la norme en-tête dans notre code.
- Y compris l'espace de noms std afin d'utiliser ses classes et fonctions sans l'appeler.
- Appel de la fonction main() dans laquelle la logique du programme doit être ajoutée. L'accolade ouvrante { marque le début du corps de la fonction main().
- Déclarer une chaîne de 10 caractères et lui donner le nom name1. La chaîne stockera la valeur Guru99.
- Déclarer une chaîne de 10 caractères et lui donner le nom nom2. La chaîne stockera la valeur John.
- Déclarer une chaîne de 10 caractères et lui donner le nom name3.
- Déclarer un variable entière nommé len.
- Copie de la chaîne name1 dans la chaîne name3.
- Afficher la valeur de la chaîne name3 ainsi qu'un texte sur la console. Cela devrait afficher Guru99.
- Concaténation de la chaîne name2 à la fin de la chaîne name1. La valeur de name1 est maintenant Guru99John.
- Afficher la valeur de la chaîne name1 ainsi qu'un texte sur la console. Cela devrait afficher Guru99John.
- Déterminer la longueur de la chaîne nommée name1 et affecter la valeur de la longueur à la variable len.
- Afficher la valeur de la variable len ainsi que d'autres textes sur la console.
- La fonction main() doit renvoyer une valeur si le programme fonctionne correctement.
- Fin du corps de la fonction main().




