• Lunes 29 de Abril de 2024, 06:33

Autor Tema:  como convertir un char a string  (Leído 1489 veces)

gerarca

  • Visitante
como convertir un char a string
« en: Lunes 21 de Marzo de 2011, 05:03 »
0
hola!! estoy tratando de comvertir un dato char a string miren lo que estoy haciendo:+

#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;

int main()
{
char rc ={1};
string sl = new string(rc);

system("pause");
return 0;
}

pero me esta dando una error, haber que estoy haciendo mal??

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: como convertir un char a string
« Respuesta #1 en: Lunes 21 de Marzo de 2011, 09:46 »
0
No puedes convertir un char a string, no son tipos de datos compatibles. Lo que puedes hacer es crear un string y meterle dicho char.

Código: C++
  1. string str;
  2. char c;
  3. str.push_back(c);
  4.  

gerarca

  • Visitante
Re: como convertir un char a string
« Respuesta #2 en: Lunes 21 de Marzo de 2011, 15:30 »
0
pero entonces que me aconsejas que haga, porque fijate lo que estoy haciendo, tengo esta cadena arr[3]={ 'C', 'A', 'S', 'A' }, Y busco convertirla a un string para formar una palabra de modo que la guarde en una variable de tipo string, ejemplo: c = "casa"; que me aconsejarias???

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: como convertir un char a string
« Respuesta #3 en: Lunes 21 de Marzo de 2011, 15:53 »
0
Eso que haces es (casi) lo mismo que char* arr = "CASA". De hecho, hacerlo de esta última forma es mejor puesto que así tienes el carácter nulo terminador de cadena (''). De tu forma no hay manera de saber cuándo acaba la cadena a menos que sepas su longitud. Además, es arr[4] y no arr[3], ya que tiene 4 elementos y no 3.

Igualmente, tal y como comentas se podría hacer tal que

Código: C++
  1. char arr[4] = {'C', 'A', 'S', 'A'};
  2. int i;
  3. string str;
  4. for(i = 0; i < 4; i++)
  5. {
  6.     str.push_back(arr[i]);
  7. }
  8.  
Insisto que esa forma de declarar el array me parece mala ya que sólo complica innecesariamente el asunto. Teniendo una cadena de caracteres estándar de C (terminada en ''), basta con

Código: C++
  1. char* arr = "CASA";
  2. string str(arr);
  3.  

Saludos

gerarca

  • Visitante
Re: como convertir un char a string
« Respuesta #4 en: Lunes 21 de Marzo de 2011, 17:05 »
0
muchas gracias! me sirvió con el str.push_back(arr).... gracias!!!! :comp:

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: como convertir un char a string
« Respuesta #5 en: Lunes 21 de Marzo de 2011, 17:54 »
0
De nada, pero insisto, así no es correcto.