elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda con manejo de cadenas y apuntadores
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con manejo de cadenas y apuntadores  (Leído 2,758 veces)
rod00x3

Desconectado Desconectado

Mensajes: 21


Ver Perfil
ayuda con manejo de cadenas y apuntadores
« en: 4 Enero 2013, 16:20 pm »

mi duda es sobre como puedo hacer para declarar un array de characteres y convertirlo en cadena o comparar un arreglo con una condicion de cadena ejemplo

char linea[1024];

cto=recvfrom(sock, linea, sizeof linea,0 , (sad) &sin1, &l)

segun este comando lee de un socket y en cto me devuelve la cantidad de bytes leidos y guarda en linea lo que leyo.

solo quiero que cuando se teclee fin me despliegue Llego, ya intente llenar todo linea con '\0' antes de leer el socket, pero nada no me funciona.
el problema se da cuando quiero comparar lo que me llega con:

if(linea=="fin"){printf("\nLlegoo");}
if(linea=="fin\0"){printf("\nLlegoo");}
pero no lo logro que esta mal??


En línea

avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: ayuda con manejo de cadenas y apuntadores
« Respuesta #1 en: 4 Enero 2013, 17:54 pm »

Para comparar cadenas en C se utiliza la función:
Código
  1. int strcmp ( const char * str1, const char * str2 );
Valor de retorno:
  • 0 si son iguales
  • Un valor mayor que 0 si el primer caracter de str1 ,que no coincide con el de str2, es mayor que el primer carácter de str2. Un valor menor que 0 indica lo contrario.

Fuente --> http://www.cplusplus.com/reference/cstring/strcmp/

Así que si la cadena que viene del buffer tiene final de cadena puedes hacer esto:

Código
  1. if(strcmp(linea,"fin")== 0)
  2. {
  3.  printf("\nLlegoo");
  4. }


« Última modificación: 4 Enero 2013, 20:45 pm por avesudra » En línea

Regístrate en
durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: ayuda con manejo de cadenas y apuntadores
« Respuesta #2 en: 4 Enero 2013, 18:38 pm »

Para que no haya confuciones avesudra se olvido de un parentesis :)

Código
  1.    if(strcmp(linea,"fin")== 0)  /* <-- ahi faltaba un parentesis */
  2.    {
  3.     printf("\nLlegoo");
  4.    }
En línea

Ahorrate una pregunta, lee el man
0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: ayuda con manejo de cadenas y apuntadores
« Respuesta #3 en: 4 Enero 2013, 20:29 pm »

Porque poner ==0? No es mas facil asi? :
Código
  1. if(!strcmp(linea, "fin"))
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: ayuda con manejo de cadenas y apuntadores
« Respuesta #4 en: 4 Enero 2013, 20:43 pm »

Cierto durasno, un descuido  :-\ . Si que es mas fácil pero si el usuario no sabe que para comparar cadenas hay que utilizar strcmp , no me atrevo a poner eso 0xDani .
En línea

Regístrate en
rod00x3

Desconectado Desconectado

Mensajes: 21


Ver Perfil
Re: ayuda con manejo de cadenas y apuntadores
« Respuesta #5 en: 7 Enero 2013, 19:24 pm »

Cierto lo que me mencionaron, funciono a la perfeccion, gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
manejo de cadenas _scanf
ASM
limbertx 3 3,142 Último mensaje 27 Febrero 2013, 17:41 pm
por xv0
Problema con apuntadores!!!!!!
Programación C/C++
7hongo7 7 4,242 Último mensaje 5 Julio 2013, 10:16 am
por kmilinh0
Apuntadores con c++ Ayuda!!!
Programación C/C++
bamdrums 5 3,025 Último mensaje 18 Enero 2015, 08:25 am
por engel lex
Manejo de cadenas en C++ [Programación básica]
Programación C/C++
sombrakepsilon 0 1,450 Último mensaje 2 Diciembre 2015, 20:36 pm
por sombrakepsilon
[C] Manejo de cadenas
Programación C/C++
n-utz 2 2,263 Último mensaje 19 Octubre 2016, 09:14 am
por class_OpenGL
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines