C/Visual C - covertir del char a string

 
Vista:

covertir del char a string

Publicado por Alberto (1 intervención) el 27/01/2004 10:09:53
quisiera saber como puedo en c++ convertir de char a string y viceversa
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:covertir del char a string

Publicado por Oliver++ (339 intervenciones) el 27/01/2004 13:42:51
bueno, si usas la clase string de la STL o CString de la MFC solo tienes que hacer esto:
CString cadena;
string cadena2;
char* nombre = "Alberto";
cadena = nombre;
cadena2 = nombre;
Si es de string a char*, entonces tendras que crear un pequeño bucle for para copiar los caracteres, pero tienes la opcion con la CString de hacer un type_cast con LPTSTR de la manera sig.

char* nombre = (LPTSTR)cadena;

suponiendo que en cadena esta tu nombre. Eso solo es en la declaracion si necesitas hacerlo en otro lugar usa una pequeña rutina.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:covertir del char a string

Publicado por El Mogur (202 intervenciones) el 28/01/2004 23:44:23
Hola!

También se puede acceder al "char *" de los string con la función c_str():

std::string cadena = "hola";
const char *cad;
cad = cadena.c_str();

Ahora bien, con eso obtienes el puntero a la memoria que almacena la clase string, por lo que no se puede cambiar.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:covertir del char a string

Publicado por Void_Pointer (180 intervenciones) el 31/01/2004 02:28:18
char String[1];

String[1]='A'; <-----char;

puede ser esto bien tambien????
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:covertir del char a string

Publicado por Void_Pointer (180 intervenciones) el 31/01/2004 02:29:30
char String[1];

String[0]='A'; <-----char;

le pifie en el indice.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:covertir del char a string

Publicado por El Mogur (202 intervenciones) el 01/02/2004 12:49:07
Buenas.

Cuando en C/C++ se guardan cadenas en caracteres, van uno detrás de otro (en un array), y el final de la cadena es marca con el caracter '\0' (es un cero, no una o).
Es decir, guardar la cadena "hola" requiere 5 char, los cuatro primeros para las letras, y el último para el "caracter fin de cadena" ('\0').
Cuando ponemos:

char *cad = "hola";

En realidad el compilador hace que la variable cad apunte a un array de 5 caracteres.

Pues bien, tú puedes hacer lo mismo "a mano", pero no puedes olvidarte del '\0', porque si no fallará más adelante (en las operaciones de escritura, comparación, copia, etc.):

char cad[5]; // Hay que reservar _5 caracteres_

cad[0] = 'h'; cad[1] = 'o'; cad[2] = 'l'; cad[3] = 'a';
cad[4] = '\0';

Lo que tú has puesto debería ser:
char String[2]; // Reservando hueco para el fin de cadena
String[0] = 'A';
String[1] = '\0';

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar