SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: gerarca en Lunes 21 de Marzo de 2011, 05:03

Título: como convertir un char a string
Publicado por: gerarca en Lunes 21 de Marzo de 2011, 05:03
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??
Título: Re: como convertir un char a string
Publicado por: m0skit0 en Lunes 21 de Marzo de 2011, 09:46
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.  
Título: Re: como convertir un char a string
Publicado por: gerarca en Lunes 21 de Marzo de 2011, 15:30
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???
Título: Re: como convertir un char a string
Publicado por: m0skit0 en Lunes 21 de Marzo de 2011, 15:53
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
Título: Re: como convertir un char a string
Publicado por: gerarca en Lunes 21 de Marzo de 2011, 17:05
muchas gracias! me sirvió con el str.push_back(arr).... gracias!!!! :comp:
Título: Re: como convertir un char a string
Publicado por: m0skit0 en Lunes 21 de Marzo de 2011, 17:54
De nada, pero insisto, así no es correcto.