Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Tratar final de cadena?

Estas en el tema de Tratar final de cadena? en el foro de C/C++ en Foros del Web. Buenas, tengo este pequeño problema que no consigo solucionar. Recibo de un socket un mensaje con recvfrom i lo intento que me entre en un ...
  #1 (permalink)  
Antiguo 07/04/2013, 12:54
 
Fecha de Ingreso: marzo-2013
Mensajes: 19
Antigüedad: 11 años, 7 meses
Puntos: 0
Tratar final de cadena?

Buenas, tengo este pequeño problema que no consigo solucionar.

Recibo de un socket un mensaje con recvfrom i lo intento que me entre en un IF pero no entra.
lo imprirmo por pantalla i sale bien. Nose si es que tengo algun problema a la hora de tratar la cadena.

a=recvfrom(sock,msg_recibido,1024,0,(struct sockaddr *)0,(int *)0);
if(a<0)
{
fprintf(stderr,"Error al recvfrom\n");
perror(argv[0]);
exit(-2);
}
//msg_recibido[a]="\0";

if (msg_recibido == "OK_REG"){
reg_periodic = 1;
printf("OOKKKK\n");
}

cuando imprimo msg_recibido por pantalla me lo imprime bien pero no entra en el IF.

Alguna idea??
he probado poninedo la marca de fin "\n" pero nada...

Gracias ;)
  #2 (permalink)  
Antiguo 07/04/2013, 14:52
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 12 años, 2 meses
Puntos: 83
Respuesta: Tratar final de cadena?

No puedes comparar cadenas con el operador ==, usa strcmp. El caracter \n es para salto de linea, si quieres tratar los datos recibidos como texto tienes que aplicar un \0 en la posicion del nº de bytes recibidos (que ya lo tienes pero has comentado la linea).

Saludos
vosk
  #3 (permalink)  
Antiguo 08/04/2013, 10:30
 
Fecha de Ingreso: marzo-2013
Mensajes: 19
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Tratar final de cadena?

Gracias por contestar vosk, ja me funciona ;)

Etiquetas: final, int
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:04.