| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
thorondrol
Registrado: 04 Nov 2007 Mensajes: 1
| Publicado: 04/11/2007 1:00 pm | | | Título: tokens y char* |
| hola, he estado haciendo un proyecto escolar y me encuentro en un problema, despues de recibir un char* de un cliente mi servidor lo parte en diferentes campos para poder almacenarlo en una lista ligada, mi problema consiste en que trato de convertir los datos a int y a char[].
Las conversiones a enteros si funcionan, pero al convertir a char la impresion de la variable me da puros numeros, lo he intentado con strcat(); y con strcpy(); pero ninguna resulta, alguna sugerencia?, el codigo (no lo tengo a la mano pero esta es la logica) va algo asi:
char f[3], mensaje[MAXLINE]; int i;
recibirDatos(sfd, mensaje, strlen(mensaje)); //en esta parte almaceno el la cadena recibida de un cliente que quiero partir, algo asi como "1_beto_mexico_4_350"
//ahora bien, aplico el strtok(); usando a"_"como divisor y obtengo
1 beto mexico 4 350
//la conversion que uso para los enteros es algo asi: i=atoi(ptr); //donde ptr es el lugar que ocupa el token en un tiempo dentro de un while
/////PROBLEMA= strcpy(f,ptr); o strcat(f,ptr); me devuelven puros numeros en f, cuando quiero la cadena de caracteres
Como puedo pasar el valor a una variable char?
agradesco su ayuda y me disculpo por la mala exposicion del codigo, pero ando algo corto de tiempo, gracias
*Edit....olvide mencionar, todo esto es sobre linux, agradeceria informacion que funcionara correctamente ahi porfa
EDIT 2...Puras maldiciones voy a soltar, ya cheque el codigo y el maldito error, no fueron los tokens ni strcpy ni el strcat, fui yo, mande imprimir enteros en lugar de char, mis disculpas por haberlos hecho leer esto y haber malgastado los preciados bits de este server |
| | Volver arriba | |  | mamntc02
Registrado: 30 Abr 2007 Mensajes: 282
| Publicado: 05/11/2007 4:08 am | | | Título: |
| Hola,
No acabo de entender exactamente cual es tu duda. Pero si el problema es como pasar un entero a string (char pointer) puedes hacer:
| Código: | int valor; char valorChar[80]={0}; sprintf(valorChar, "%d", valor); | Si valor es, por ejemplo, 150, en valorChar tendrás: {'1', '5', '0', 0,...., 0}
Saludos |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |