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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  strcmp a mano // operador ternario // #define en lenguaje C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: strcmp a mano // operador ternario // #define en lenguaje C  (Leído 2,137 veces)
NOB2014


Desconectado Desconectado

Mensajes: 366



Ver Perfil
strcmp a mano // operador ternario // #define en lenguaje C
« en: 29 Diciembre 2016, 12:46 pm »

Hola, muy buen día para todos.
Hoy no les consulto por un error sino por algo que por más que busco en la web no encuentro la respuesta, ¿es posible agrupar desde la línea 10 a la 15 con un operador ternario y de no ser así me podrían dar alguna idea de como hacerlo con un #define? -

Código
  1. #include <stdio.h>
  2.  
  3. int d( char *a, char *b);
  4.  
  5. int main( void ){
  6. char a[] = "rosita", b[] = "Rosita";
  7. int res;
  8.  
  9. res = d( a, b );
  10. if( res == 0 )
  11. printf( "\n Las frases %s y %s son IGUALES\n\n", a, b );
  12. else if( res < 0 )
  13. printf( "\n %s es MAYOR que %s\n\n", a, b );
  14. else
  15. printf( "\n %s es MENOR que %s\n\n", a, b );
  16.  
  17. return 0;
  18. }
  19.  
  20.  
  21. // Lo que regresa la función: >0 si a<b ==> 0 si a==b ==> <0 si a>b
  22. int d( char *a, char *b ){
  23.  
  24. for( ; *a == *b; a++, b++ )
  25. if( *a == '\0' )
  26. return 0;
  27.  
  28. return *a - *b;
  29. }


Desde ya muchas gracias por el tiempo que le dediquen. -
Saludos.


En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: strcmp a mano // operador ternario // #define en lenguaje C
« Respuesta #1 en: 29 Diciembre 2016, 13:30 pm »

Son 2 condiciones, así que es posible hacerlo con 2 operadores ternarios.

Código
  1. printf( res == 0 ? "\n Las frases %s y %s son IGUALES\n\n"
  2.                 : ( res < 0 ? "\n %s es MAYOR que %s\n\n"
  3.                             : "\n %s es MENOR que %s\n\n" ), a, b);


En línea

NOB2014


Desconectado Desconectado

Mensajes: 366



Ver Perfil
Re: strcmp a mano // operador ternario // #define en lenguaje C
« Respuesta #2 en: 29 Diciembre 2016, 14:21 pm »

Bien amigo es lo que necesitaba, me parece que me faltaba algún paréntesis por ello no lo podía hacer. -
Gracias.
En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
define y if defined
PHP
Servia 2 3,338 Último mensaje 7 Julio 2009, 13:35 pm
por Servia
Define en C
Programación C/C++
mapers 1 4,687 Último mensaje 23 Abril 2011, 16:19 pm
por Garfield07
[Ayuda] Operador ternario
Java
Senior++ 2 2,237 Último mensaje 13 Julio 2012, 15:24 pm
por Senior++
Es eficiente usar #define
Programación C/C++
anonimo12121 5 3,158 Último mensaje 3 Octubre 2012, 14:14 pm
por anonimo12121
[Solucionado] Duda en operador ternario ?:
Programación C/C++
Mario Olivera 6 3,907 Último mensaje 21 Julio 2014, 17:17 pm
por Mario Olivera
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines