0

Hola me gustaria saber como padria concatenar dos variables de tipo char* y que el resultado se almancene en otra?

Asta ahora no llevo nada de avance en esta problema

Utilizo windows y codeblocks

Gracias por su ayuda :-) Edit: Este es un código de ejemplo de lo que nesesito:

int main(){
      char* text="Hola";
char* text2="mundo";
//Aquí iria el código de unión o concatenación:
char* salida=...;
//Aquí la salida
cout<<salida;
return 0;
//Salida: Hola mundo
}
Jose
  • 47
  • 9
  • Sería de mucha ayuda saber porque los puedes concatenar, si lo que quieres es manejar strings te recomiendo que le eches un ojo a la liberería estádar de string y sus métodos: [`std::string`](http://www.cplusplus.com/reference/string/string/) – FranAcuna Jan 15 '21 at 02:15
  • @FranAcuna Hola, gracias por responder, investigue lo que me dijiste y use lo mas paracido a lo que nesesito (el operador +) pero obtengo el siguiente error error: invalid operands of types 'char*' and 'char*' to binary 'operator+'| Como podria solucionarlo? – Jose Jan 15 '21 at 03:56
  • Yo no fui el que sugirió utilizar el operador de suma, yo comenté una respuesta diciendo que `sumar` no es lo mismo que `concatenar`. Te insisto... Da un contexto del porqué quieres hacer eso y se te puede ayudar, se pueden interpretar aplicaciones diferentes para lo que dices. Se necesita saber qué es lo que quieres.... ¿Quieres combinar dos palabras? **Intenta hacer un código**. Si editas tu respuesta para hacerla más específica y clara se te puede ayudar. Lee la sección `Ayuda a otros a reproducir el problema` de [cómo preguntar](https://es.stackoverflow.com/help/how-to-ask) – FranAcuna Jan 15 '21 at 04:56
  • @FranAcuna Cómo ya avía mencionado antes, no tengo ningún avance en mi problema, lo nesesito para un código de salida de datos con WriteFile – Jose Jan 15 '21 at 05:09
  • @FranAcuna Gracias por la sección de Aprende a preguntar, me ayudó a formular mejor mi pregunta, gracias!!!:-) – Jose Jan 15 '21 at 05:15

2 Answers2

2

Los datos char* son punteros. No puedes concatenar punteros. Lee este hilo para saber lo que es un puntero.

Si quieres concatenar cadenas de texto en C++, usa std::string:

#include <iostream>
#include <string>

int main(){
    std::string text = "Hola";   // Primera cadena
    std::string text2 = "mundo"; // Segunda cadena

    std::string salida = text + text2; // Concatenación

    std::cout << salida; // Muestra 'Holamundo'
    return 0;
}

Puedes ver el código funcionando en Try it online!.

PaperBirdMaster
  • 44,474
  • 6
  • 44
  • 82
2

Cuando tienes que trabajar con APIs del sistema que usen cadenas al estilo C, lo más conveniente es trabajar con cadenas de C++ (std::string), luego llamar al método c_str para obtener una cadena estilo C y poder usarla donde se necesite. Por ejemplo, para concatenar dos cadenas al estilo C:

#include <cstdio>
#include <string>

int main() {
    const char *nombre = "Sara";
    const char *apellido = "Bandeiro";

    std::string nombre_s = nombre;
    std::string apellido_s = apellido;

    std::string nombre_y_apellido = nombre_s + " " + apellido_s;

    std::puts(nombre_y_apellido.c_str());
}
braver
  • 906
  • 1
  • 4
  • 13