Fonction de chaîne C++ : strcpy(), strcat(), strlen(), strcmp() Exemple

Qu'est-ce qu'une chaîne ?

Une chaîne est une séquence de caractères. Une chaîne C++ est un objet de la classe std::string. Les caractères sont des séquences d'octets stockées avec accès à un seul octet de caractère autorisé.

Les chaînes C++ allouent de la mémoire de manière dynamique. Plus de mémoire peut être allouée à la chaîne pendant l'exécution si nécessaire. Puisqu’il n’y a pas de pré-allocation de mémoire, pas de gaspillage de mémoire. Nous pouvons effectuer diverses operation sur les chaînes, y compris les comparaisons, la concaténation, la conversion, etc.

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 C programming language. C++ continue de le prendre en charge. Il s'agit simplement d'un tableau unidimensionnel de caractères terminé par un caractère nul (\0). Une chaîne terminée par un caractère nul comporte des caractères qui composent la chaîne, puis 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 qui forme le mot John. Le mot comporte 4 caractères, mais la chaîne a une taille de 5. L'espace supplémentaire permet de conserver 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 que vous n'êtes pas obligé de placer le caractère nul à la fin de la constante chaîne. Le compilateur C++ placera automatiquement le '\0' à la fin de la chaîne lors de l'initialisation du tableau.

std :: string

La bibliothèque C++ standard fournit la classe de chaînes qui prend en charge diverses chaînes operation. Il est écrit sous la forme 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 :

Accéder aux valeurs de chaîne

Voici une capture d'écran du code :

Accéder aux valeurs de chaîne

Explication du code :

  1. Y compris le fichier d'en-tête iostream dans notre code. Cela nous permettra de lire et d'écrire sur la console.
  2. Y compris l'espace de noms std afin d'utiliser ses classes et fonctions sans l'appeler.
  3. Appel de la fonction main() à l'intérieur de laquelle la logique du programme doit être ajoutée. Le { marque le début du corps de la fonction main().
  4. 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.
  5. Impression du texte sur la console.
  6. Impression de la valeur de la chaîne nommée name sur la console.
  7. La fonction main() doit renvoyer une valeur si le programme fonctionne correctement.
  8. Fin du corps de la fonction main().

Voici un autre exemple utilisant la classe de chaînes standard C++ :

#include <iostream>
#include <string>
using namespace std;
int main() {

	string name = "Guru99";
	
	cout << "The name is : " << name << endl;

	return 0;
}

Sortie :

Accéder aux valeurs de chaîne

Voici une capture d'écran du code :

Accéder aux valeurs de chaîne

Explication du code :

  1. Y compris le fichier d'en-tête iostream dans notre code. Cela nous permettra de lire et d'écrire sur la console.
  2. Y compris la classe de chaîne standard dans notre code.
  3. Y compris l'espace de noms std afin d'utiliser ses classes et fonctions sans l'appeler.
  4. Appel de la fonction main() à l'intérieur de laquelle la logique du programme doit être ajoutée. Le { marque le début du corps de la fonction main().
  5. Déclarer une chaîne et lui donner le nom name. La chaîne stockera la valeur Guru99.
  6. Impression de la valeur du nom de chaîne à côté du texte sur la console.
  7. La fonction main() doit renvoyer une valeur si le programme fonctionne correctement.
  8. Fin du corps de la fonction main().

Fonctions de chaîne en C++

Vous aurez souvent envie de manipuler des chaînes. C++ fournit un large éventail de fonctions que vous pouvez utiliser à cet effet. Ces fonctions sont définies dans la classe CString, nous devons donc l'inclure dans notre code afin d'utiliser les fonctions. Discutons-en quelques-uns :

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. La fonction copiera la chaîne string1 dans la chaîne 1.

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 à concaténer. La fonction ci-dessus concatènera 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:

strnlen(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 string1 et string2 sont similaires, moins de 0 si string1 chaîne2.

Mise en situation :

Le following L'exemple 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 :

Fonctions de chaîne en C++

Voici une capture d'écran du code :

Fonctions de chaîne en C++

Explication du code :

  1. Y compris le fichier d'en-tête iostream dans notre code. Cela nous permettra de lire et d'écrire sur la console.
  2. Y compris la classe CString standard dans notre code.
  3. Y compris l'espace de noms std afin d'utiliser ses classes et fonctions sans l'appeler.
  4. Appel de la fonction main() à l'intérieur de laquelle la logique du programme doit être ajoutée. Le { marque le début du corps de la fonction main().
  5. Déclarer une chaîne de 10 caractères et lui donner le nom nom1. La chaîne stockera la valeur Guru99.
  6. Déclarer une chaîne de 10 caractères et lui donner le nom nom2. La chaîne stockera la valeur John.
  7. Déclarer une chaîne de 10 caractères et lui donner le nom name3.
  8. Déclarer un variable entière nommé len.
  9. Copie de la chaîne name1 dans la chaîne name3.
  10. Impression de la valeur de la chaîne name1 à côté du texte sur la console. Il devrait imprimer Guru99.
  11. Concaténation des chaînes nom2 à la fin de la chaîne nom1. La valeur de name1 est désormais Guru99John.
  12. Impression de la valeur de la chaîne name1 à côté du texte sur la console. Il devrait imprimer Guru99John
  13. Déterminer la longueur de la chaîne nommée name1 et attribuer la valeur de length à la variable len.
  14. Impression de la valeur de la variable len à côté d'un autre texte sur la console.
  15. La fonction main() doit renvoyer une valeur si le programme fonctionne correctement.
  16. Fin du corps de la fonction main().

Résumé

  • Une chaîne est une séquence de caractères.
  • Les chaînes appartiennent à la classe de chaînes standard en C++.
  • Nous pouvons déclarer des chaînes en utilisant la chaîne de caractères de style C ou la classe de chaînes standard.
  • La fonction strcpy() copie une chaîne dans une autre.
  • La fonction strcat() concatène deux fonctions.
  • La fonction strlen() renvoie la longueur d'une fonction.
  • La fonction strcmp()ares deux cordes.