Copier une chaîne de caractères dans une autre

C++Beginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous allez apprendre à copier des chaînes de caractères en C++. Nous allons utiliser à la fois des objets string et des chaînes de caractères C-style pour démontrer cela.

Créer un nouveau fichier C++

Accédez au répertoire ~/projet et créez un nouveau fichier C++ nommé main.cpp.

cd ~/projet
touch main.cpp

Copie d'objets de chaîne de caractères

Nous pouvons utiliser l'opérateur d'affectation pour copier un objet de chaîne de caractères dans un autre. Suivez le code ci-dessous :

#include <iostream>
#include <string>

using namespace std;

int main() {
    string s1, s2;

    cout << "Entrez la chaîne s1 : ";
    getline(cin, s1);

    s2 = s1;

    cout << "s1 = " << s1 << endl;
    cout << "s2 = " << s2;

    return 0;
}

Explication :

  • Nous commençons par inclure les bibliothèques nécessaires pour ce programme, qui sont iostream et string.
  • Nous définissons ensuite deux objets de chaîne de caractères s1 et s2
  • L'utilisateur est invité à entrer la chaîne s1 en utilisant la fonction getline(), qui lit toute la chaîne y compris les espaces.
  • Affectez s1 à s2 en utilisant l'opérateur d'affectation.
  • Enfin, nous affichons s1 et s2.

Sortie du code

Entrez la chaîne s1 : Hello World!
s1 = Hello World!
s2 = Hello World!

Copie de chaînes de caractères C-style

Nous allons utiliser la fonction strcpy() de la bibliothèque cstring pour copier des chaînes de caractères C-style. Suivez le code ci-dessous :

#include <iostream>
#include <cstring>

using namespace std;

int main() {
    char s1[100], s2[100];

    cout << "Entrez la chaîne s1 : ";
    cin.getline(s1, 100);

    strcpy(s2, s1);

    cout << "s1 = " << s1 << endl;
    cout << "s2 = "<< s2;

    return 0;
}

Explication :

  • Nous commençons par inclure les bibliothèques nécessaires pour ce programme, qui sont iostream et cstring
  • Nous définissons ensuite deux tableaux de chaînes de caractères C-style s1 et s2
  • L'utilisateur est invité à entrer la chaîne s1
  • La fonction getline() n'est pas utilisée dans cet exemple car elle est uniquement utilisée pour les objets de chaîne de caractères et non pour les chaînes de caractères C-style. Au lieu de cela, nous utilisons cin.getline où le premier argument est la variable du tableau et le second argument est la taille maximale du tableau à lire.
  • Copiez la chaîne s1 dans s2 à l'aide de la fonction strcpy() dans cstring
  • Enfin, nous affichons s1 et s2.

Sortie du code

Entrez la chaîne s1 : Hello World!
s1 = Hello World!
s2 = Hello World!

Exécuter le fichier

Pour exécuter le code dans le terminal, ouvrez le terminal dans le dossier du projet et exécutez les commandes suivantes :

g++ main.cpp -o main
./main

Cette commande compilera le fichier main.cpp et produira un fichier exécutable nommé main dans le même répertoire. La deuxième commande exécutera le fichier main et affichera le résultat dans le terminal.

Résumé

Dans ce laboratoire, nous avons discuté de la manière de copier des chaînes de caractères en C++ en utilisant des objets de chaîne de caractères et des chaînes de caractères C-style. Vous avez appris que pour les objets de chaîne de caractères, vous pouvez utiliser l'opérateur d'affectation et pour les chaînes de caractères C-style, vous pouvez utiliser la fonction strcpy() dans cstring. En suivant ces étapes simples, vous pouvez facilement copier des chaînes de caractères en C++.