Cómo concentrar dos cadenas de caracteres en C++

Jinku Hu 12 octubre 2023
  1. Use el operador += para concatenar dos cadenas en C++
  2. Usa el método append() para concentrar dos cadenas de caracteres en C++
Cómo concentrar dos cadenas de caracteres en C++

Este artículo demostrará múltiples métodos sobre cómo concatenar dos cadenas de caracteres en C++.

Use el operador += para concatenar dos cadenas en C++

El tipo std::string es mutable y soporta nativamente los operadores = y +=, este último se traduce directamente en la concatenación de cadenas de caracteres in situ. Este operador puede ser usado para concatenar una variable de tipo string, una cadena literal, una string de tipo C, o un carácter a un objeto string. El siguiente ejemplo muestra dos variables string que se agregan entre sí y se envían a la consola.

#include <iostream>
#include <string>

using std::copy;
using std::cout;
using std::endl;
using std::string;

int main() {
  string string1("Starting string ");
  string string2("end of the string ");

  cout << "string1:  " << string1 << endl;
  string1 += string2;
  cout << "string1:  " << string1 << endl;

  return EXIT_SUCCESS;
}

Resultado:

string1:  Starting string
string1:  Starting string end of the string

Alternativamente, se puede construir una función personalizada que tome dos variables string como parámetros y devuelva el resultado de la concatenación. Note que string tiene un constructor de movimientos, por lo que devolver cadenas largas por valor es bastante eficiente. La función concTwoStrings construye un nuevo objeto string, que se asigna a la variable string2.

#include <iostream>
#include <string>

using std::copy;
using std::cout;
using std::endl;
using std::string;

string concTwoStrings(const string& s1, const string& s2) { return s1 + s2; }

int main() {
  string string1("Starting string ");

  string string2 = concTwoStrings(string1, " conc two strings");
  cout << "string2: " << string2 << endl;

  return EXIT_SUCCESS;
}

Resultado:

string2: Starting string  conc two strings

Usa el método append() para concentrar dos cadenas de caracteres en C++

append es el método incorporado de la clase std::string. Ofrece una rica funcionalidad, que puede ser explorada en su manual página. En este caso, lo utilizamos para concatenar un valor de cadena de caracteres literal con el objeto string.

#include <iostream>
#include <string>

using std::copy;
using std::cout;
using std::endl;
using std::string;

int main() {
  string string("Temporary string");

  string.append(" appended sequence");
  cout << string << endl;

  return EXIT_SUCCESS;
}

Resultado:

Temporary string appended sequence

El método append devuelve un puntero a this objeto para que puedas hacer múltiples llamadas a funciones encadenadas y añadir a una variable string varias veces. Este método también puede añadir una lista de caracteres inicializadores con la siguiente sintaxis: append({ 'a', 'b', 'c', 'd'}).

#include <iostream>
#include <string>

using std::copy;
using std::cout;
using std::endl;
using std::string;

int main() {
  string string1("Starting strings");
  string string2("end of the string");

  string1.append(" ").append(string2).append("\n");
  cout << string1;

  return EXIT_SUCCESS;
}

Resultado:

Starting string end of the string
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artículo relacionado - C++ String