Copiar uma String para Outra

C++Beginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como copiar strings em C++. Usaremos tanto objetos string quanto strings no estilo C para demonstrar isso.

Criar um novo arquivo C++

Navegue até o diretório ~/project e crie um novo arquivo C++ chamado main.cpp.

cd ~/project
touch main.cpp

Copiando Objetos String

Podemos usar o operador de atribuição para copiar um objeto string para outro. Siga o código abaixo:

#include <iostream>
#include <string>

using namespace std;

int main() {
    string s1, s2;

    cout << "Enter string s1: ";
    getline(cin, s1);

    s2 = s1;

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

    return 0;
}

Explicação:

  • Começamos incluindo as bibliotecas necessárias para este programa, que são iostream e string.
  • Em seguida, definimos dois objetos string s1 e s2.
  • O usuário é solicitado a inserir a string s1 usando a função getline(), que lê a string inteira, incluindo espaços.
  • Atribuímos s1 a s2 usando o operador de atribuição.
  • Finalmente, imprimimos s1 e s2.

Saída do código

Enter string s1: Hello World!
s1 = Hello World!
s2 = Hello World!

Copiando Strings no Estilo C

Usaremos a função strcpy() da biblioteca cstring para copiar strings no estilo C. Siga o código abaixo:

#include <iostream>
#include <cstring>

using namespace std;

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

    cout << "Enter string s1: ";
    cin.getline(s1, 100);

    strcpy(s2, s1);

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

    return 0;
}

Explicação:

  • Começamos incluindo as bibliotecas necessárias para este programa, que são iostream e cstring.
  • Em seguida, definimos dois arrays de strings no estilo C, s1 e s2.
  • O usuário é solicitado a inserir a string s1.
  • A função getline() não é usada neste caso porque é usada apenas para objetos string e não para strings no estilo C. Em vez disso, usamos cin.getline, onde o primeiro argumento é a variável do array e o segundo argumento é o tamanho máximo do array a ser lido.
  • Copiamos a string s1 para s2 usando a função strcpy() em cstring.
  • Finalmente, imprimimos s1 e s2.

Saída do código

Enter string s1: Hello World!
s1 = Hello World!
s2 = Hello World!

Executar o arquivo

Para executar o código no terminal, abra o terminal na pasta do projeto e execute os seguintes comandos:

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

Este comando compilará o arquivo main.cpp e produzirá um arquivo executável chamado main no mesmo diretório. O segundo comando executa o arquivo main e exibe o resultado no terminal.

Resumo

Este laboratório discutiu como copiar strings em C++ usando objetos string e strings no estilo C. Você aprendeu que, para objetos string, pode usar o operador de atribuição e, para strings no estilo C, pode usar a função strcpy() em cstring. Seguindo estes passos simples, você pode facilmente copiar strings em C++.