Copiar una cadena a otra

C++C++Beginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá cómo copiar cadenas en C++. Usaremos tanto objetos de cadena como cadenas de estilo C para demostrar esto.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp/BasicsGroup -.-> cpp/arrays("Arrays") cpp/BasicsGroup -.-> cpp/strings("Strings") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/user_input("User Input") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/arrays -.-> lab-96183{{"Copiar una cadena a otra"}} cpp/strings -.-> lab-96183{{"Copiar una cadena a otra"}} cpp/output -.-> lab-96183{{"Copiar una cadena a otra"}} cpp/user_input -.-> lab-96183{{"Copiar una cadena a otra"}} cpp/files -.-> lab-96183{{"Copiar una cadena a otra"}} cpp/code_formatting -.-> lab-96183{{"Copiar una cadena a otra"}} end

Crea un nuevo archivo de C++

Navega hasta el directorio ~/proyecto y crea un nuevo archivo de C++ llamado main.cpp.

cd ~/proyecto
touch main.cpp

Copiando objetos de cadena

Podemos usar el operador de asignación para copiar un objeto de cadena a otro. Siga el código a continuación:

#include <iostream>
#include <string>

using namespace std;

int main() {
    string s1, s2;

    cout << "Ingrese la cadena s1: ";
    getline(cin, s1);

    s2 = s1;

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

    return 0;
}

Explicación:

  • Comenzamos incluyendo las bibliotecas necesarias para este programa, que son iostream y string.
  • Luego definimos dos objetos de cadena s1 y s2
  • Se le pide al usuario que ingrese la cadena s1 usando la función getline(), que lee toda la cadena incluyendo los espacios.
  • Asignamos s1 a s2 usando el operador de asignación.
  • Finalmente, imprimimos s1 y s2.

Salida del código

Ingrese la cadena s1: Hello World!
s1 = Hello World!
s2 = Hello World!

Copiando cadenas de estilo C

Usaremos la función strcpy() de la biblioteca cstring para copiar cadenas de estilo C. Siga el código a continuación:

#include <iostream>
#include <cstring>

using namespace std;

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

    cout << "Ingrese la cadena s1: ";
    cin.getline(s1, 100);

    strcpy(s2, s1);

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

    return 0;
}

Explicación:

  • Comenzamos incluyendo las bibliotecas necesarias para este programa, que son iostream y cstring
  • Luego definimos dos arrays de cadenas de estilo C s1 y s2
  • Se le pide al usuario que ingrese la cadena s1
  • En esta instancia no se utiliza la función getline() porque solo se utiliza para objetos de cadena y no para cadenas de estilo C. En su lugar, usamos cin.getline donde el primer argumento es la variable del array y el segundo argumento es el tamaño máximo del array a leer.
  • Copiamos la cadena s1 a s2 usando la función strcpy() en cstring
  • Finalmente, imprimimos s1 y s2.

Salida del código

Ingrese la cadena s1: Hello World!
s1 = Hello World!
s2 = Hello World!

Ejecuta el archivo

Para ejecutar el código en la terminal, abre la terminal en la carpeta del proyecto y ejecuta los siguientes comandos:

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

Este comando compilará el archivo main.cpp y generará un archivo ejecutable llamado main en el mismo directorio. El segundo comando ejecutará el archivo main y mostrará el resultado en la terminal.

Resumen

Esta práctica abordó cómo copiar cadenas en C++ utilizando objetos de cadena y cadenas de estilo C. Aprendiste que para los objetos de cadena, puedes usar el operador de asignación y para las cadenas de estilo C, puedes usar la función strcpy() en cstring. Siguiendo estos pasos simples, puedes copiar fácilmente cadenas en C++.