Título: Pasar tipo const char* a char Publicado por: jorge_hura en 24 Julio 2013, 13:14 pm Hola buenas, soy principiante con esto de la programacion. En mi proyecto recibo una informacion a traves de un socket, esta se guarda en un espacio que he llamado recvBuff[512] (declarado como global). por el socket debe llegarme un caracter que luego tengo que comprobar de un array en que posicion del array esta. Mi problema es que al usar un stcmp dentro de un for para saber la posicion del arrray no me deja porque uno es char y el otro const char*. Hay alguna forma de transformar de un tipo al otro?? gracias. adjunto el codigo
pd: programando en C Código: #ifndef _WINDOWS_ Título: Re: Pasar tipo const char* a char Publicado por: eferion en 24 Julio 2013, 13:21 pm strcmp lo que hace es comparar dos cadenas de caracteres y devolver un resultado que te indica si son iguales o no.
Tu, obviamente, no quieres eso. Tu estás comparando char contra char... este chequeo es tan sencillo como: Código
Obviamente esto es asumiendo que el caracter a localizar sea el primero de los recibidos por el servidor. Título: Re: Pasar tipo const char* a char Publicado por: jorge_hura en 24 Julio 2013, 13:35 pm Toda la razon no me habia dado cuenta, no lo puedo probar aun pero creo que me servira.
gracias eferion Título: Re: Pasar tipo const char* a char Publicado por: amchacon en 24 Julio 2013, 15:22 pm Tu estás comparando char contra char... este chequeo es tan sencillo como: Me parece mejor este otro método para comparar cadenas:Código
Código
Título: Re: Pasar tipo const char* a char Publicado por: eferion en 24 Julio 2013, 15:23 pm ... No se trata de comparar cadenas... sino de localizar un caracter en un vector
Título: Re: Pasar tipo const char* a char Publicado por: amchacon en 24 Julio 2013, 15:46 pm ... No se trata de comparar cadenas... sino de localizar un caracter en un vector Huy, como había leído algo de strcmp y de comparar cadenas :silbar:Título: Re: Pasar tipo const char* a char Publicado por: eferion en 24 Julio 2013, 16:06 pm Ya, a mi al principio me pasó lo mismo... tuve que leerlo tranquilamente un par de veces para verlo claro jejeje
Título: Re: Pasar tipo const char* a char Publicado por: rir3760 en 24 Julio 2013, 17:45 pm Este bucle:
Código Supongo tiene la intención de buscar cada uno de los caracteres de la cadena "tiempoCaracteres" en "RecvBuff" indicando el resultado. Ello podría realizarse con strchr (prototipo en <string.h>) o un simple bucle pero hay problemas: para empezar no se trata de una cadena sino de una secuencia de bytes y el numero de estos es el valor de retorno de la función recv. Un saludo Título: Re: Pasar tipo const char* a char Publicado por: eferion en 24 Julio 2013, 17:56 pm Ello podría realizarse con strchr (prototipo en <string.h>) o un simple bucle pero hay problemas: para empezar no se trata de una cadena sino de una secuencia de bytes y el numero de estos es el valor de retorno de la función recv. Efectivamente, lo que se envía por un socket es un vector de bytes... sin embargo, si ese vector de bytes se ha compuesto a partir de una cadena de caracteres... la conversión es directa y no da problemas. Es decir, si yo envío "Hola", la cadena es 'H', 'O', 'L', 'A', '\0' y el vector de bytes tendrá exactamente la misma información. Si yo cojo ese vector de bytes y se lo enchufo a cout como un array de caracteres en la consola me va a imprimir "Hola" Título: Re: Pasar tipo const char* a char Publicado por: BlackZeroX en 24 Julio 2013, 21:05 pm ... No se trata de comparar cadenas... sino de localizar un caracter en un vector ¿Un caracter? strchr() Dulces Lunas!¡. Título: Re: Pasar tipo const char* a char Publicado por: eferion en 24 Julio 2013, 21:12 pm ¿Un caracter? strchr() Dulces Lunas!¡. Con eso no consigues la posición ( en índice ) del carácter buscado. Título: Re: Pasar tipo const char* a char Publicado por: Eternal Idol en 24 Julio 2013, 21:37 pm Con restarle el primer parametro que se le pasa a strchr obtenes el indice ... aca ejemplo:
http://www.cplusplus.com/reference/cstring/strchr/ Título: Re: Pasar tipo const char* a char Publicado por: eferion en 25 Julio 2013, 07:30 am Con restarle el primer parametro que se le pasa a strchr obtenes el indice ... aca ejemplo: http://www.cplusplus.com/reference/cstring/strchr/ Eso lo se... pero yo creo que para alguien que más o menos está empezando entender que esos desplazamientos en memoria son iguales al index buscado puede no ser trivial Título: Re: Pasar tipo const char* a char Publicado por: Eternal Idol en 25 Julio 2013, 09:06 am Eso lo se... pero yo creo que para alguien que más o menos está empezando entender que esos desplazamientos en memoria son iguales al index buscado puede no ser trivial Si vos lo decis ... igual llamar a una funcion standard y hacer una resta es muy sencillo (mas que las otras propuestas) de programar y mantener, es solo cuestion de comprender el lenguaje. Título: Re: Pasar tipo const char* a char Publicado por: eferion en 25 Julio 2013, 09:18 am lo se, y soy partidario de usar siempre, en la medida de lo posible, la librería estándard... pero yo he tenido que explicar a veces conceptos de programación a gente un poco novel y ha sido más fácil explicar primero el método cutre y luego, más adelante, el bueno.
Pues no he sufrido yo para que más de uno en mi universidad entendiese el tema de los punteros dobles y sus posibilidades... Título: Re: Pasar tipo const char* a char Publicado por: Eternal Idol en 25 Julio 2013, 09:50 am Eso es problema del que pregunta, tiene libros, tutoriales, todo Internet para informarse sobre punteros.
|