Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Concatenar string y int en una variable string(c++)

Estas en el tema de Concatenar string y int en una variable string(c++) en el foro de C/C++ en Foros del Web. Saludos, Soy nuevo en c++ y me encontrado con un problema que quizas para ustedes paresca bastante basico. Pues mi problema es el siguiente: Si ...
  #1 (permalink)  
Antiguo 19/06/2011, 13:47
 
Fecha de Ingreso: marzo-2011
Mensajes: 7
Antigüedad: 13 años, 1 mes
Puntos: 2
Concatenar string y int en una variable string(c++)

Saludos,

Soy nuevo en c++ y me encontrado con un problema que quizas para ustedes paresca bastante basico. Pues mi problema es el siguiente:

Si tengo las siguientes variables de tipo int:
Cita:
int dia= 4;
int mes=10;
int ano= 2011;

//Y quiero concatenerlas en un string

string fecha = dia+"/"+mes+"/"+ano;
Esto me produce que el compilador me de el siguiente error:

Cita:
Sistema.cpp:107:35: error: invalid operands of types 'const char*' and 'const ch
ar [2]' to binary 'operator+'
Espero que alguien me pueda ayudar.
  #2 (permalink)  
Antiguo 23/06/2011, 05:09
Avatar de afrika026  
Fecha de Ingreso: junio-2011
Mensajes: 85
Antigüedad: 12 años, 10 meses
Puntos: 19
Respuesta: Concatenar string y int en una variable string(c++)

el error aparece porque estas intentando agregar a una variable string un int. Es un error de tipos, por lo tanto tenes que hacer un cast, es decir convertir el int en string.

esto lo podes hacer con la funcion itoa(int valor, char*str, 10)

te pongo una funcion encargada de convertir int a string, esta funcion porsupuesto va retornar un string.

string IntToString(int intValor) {
char *myBuff;
string strRetVal;

// Crea nuevo array de caracteres
myBuff = new char[100];

// Pone a myBuff a 0
memset(myBuff,'\0',100);

// Convierte a string
itoa(intValor,myBuff,10);

// Copia myBuff dentro de strRetVal
strRetVal = myBuff;

// Borra myBuff
delete[] myBuff;

//retorna la cadena
return(strRetVal);
}

usa esta funcion de la siguiente manera.
string fecha = IntToString(dia)+"/"+IntToString(mes)+"/"+IntToString(ano);
  #3 (permalink)  
Antiguo 24/06/2011, 11:31
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años
Puntos: 71
Respuesta: Concatenar string y int en una variable string(c++)

Intenta esto, ojo que primero le pongo una cadena:

Tuyo:
Código C++:
Ver original
  1. string fecha = dia+"/"+mes+"/"+ano;

Mio:
Código C++:
Ver original
  1. string fecha =""+ dia+"/"+mes+"/"+ano; //Cadena vacía al inicio
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%
  #4 (permalink)  
Antiguo 24/06/2011, 12:34
 
Fecha de Ingreso: febrero-2003
Ubicación: D.F.
Mensajes: 163
Antigüedad: 21 años, 2 meses
Puntos: 22
Respuesta: Concatenar string y int en una variable string(c++)

Puedes utilizar la clase stringstream.

Código C++:
Ver original
  1. #include <iostream>
  2. #include <sstream>
  3. #include <string>
  4. using namespace std;
  5.  
  6.  
  7. int main(){
  8.     int dia= 4;
  9.     int mes=10;
  10.     int ano= 2011;
  11.  
  12.     ostringstream os;
  13.     os << dia << '/' << mes << '/' << ano;
  14.  
  15.     cout << os.str();
  16. }
  #5 (permalink)  
Antiguo 06/07/2011, 19:27
 
Fecha de Ingreso: marzo-2011
Mensajes: 7
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: Concatenar string y int en una variable string(c++)

Gracias ha todos por sus respuestas ya me ha funcionado con la clase stringstream.

Etiquetas: concatenar, int, string, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:51.