Autor Tema: Comparar 2 cadenas sin usar string.h  (Leído 9663 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado loke

  • Sv Member
  • ***
  • Mensajes: 244
Comparar 2 cadenas sin usar string.h
« : noviembre 08, 2012, 10:18:33 am »
Bueno tengo un eercicio que no logro saber como hacerlo, es de comparar 2 cadenas y que diga el mensaje segun la comparacion, son iguales, la primera es mayor que la segunda o la segunda es mayor que la primera.
El problema es que lo tengo que hacer sin usar la libreria string.h si alguien sabe mas o menos como hacer el proceso se lo agradeceria.

Desconectado g00mba

  • The Communiter-
  • *
  • Mensajes: 14585
  • SOMOS LEGION
    • ALABADO SEA MONESVOL
Re:Comparar 2 cadenas sin usar string.h
« Respuesta #1 : noviembre 08, 2012, 10:39:03 am »
parsealo no como una string sino como algun otro tipo de dato. hexadecimal, binario, etc.

Desconectado hkadejo

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 3346
Re:Comparar 2 cadenas sin usar string.h
« Respuesta #2 : noviembre 08, 2012, 12:29:40 pm »
Bueno tengo un eercicio que no logro saber como hacerlo, es de comparar 2 cadenas y que diga el mensaje segun la comparacion, son iguales, la primera es mayor que la segunda o la segunda es mayor que la primera.
El problema es que lo tengo que hacer sin usar la libreria string.h si alguien sabe mas o menos como hacer el proceso se lo agradeceria.

Si la primera es mayor a la segunda en que?? longitud???
Lo que se me ocurre es que recorras ambas cadenas caracter por caracter y hagas la comparacion char por char.

Desconectado loke

  • Sv Member
  • ***
  • Mensajes: 244
Re:Comparar 2 cadenas sin usar string.h
« Respuesta #3 : noviembre 09, 2012, 12:38:24 pm »
Si es caracter por caracter la cosa es que como lo tenes que hacer sin usar la libreria string.h.

Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6531
  • "Once you go arch , u never go back"
    • SV CommunitY
Re:Comparar 2 cadenas sin usar string.h
« Respuesta #4 : noviembre 09, 2012, 01:12:51 pm »
Master crees que te sirve este ejemplo:

Código: [Seleccionar]
#include<stdio.h>
int scmp(char *,char *);
void main(void)
{
   char str1[25],str2[25];
   int dif;
   clrscr();
   printf("\nEnter the first String:");
   gets(str1);
   printf("\nEnter the second String:");
   gets(str2);


   dif=scmp(str1,str2);                                                         //1
   if(dif>0)
       printf("%s comes after %s",str1,str2);
   else
   {
       if(dif<0)
  printf("%s comes after %s",str2,str1);
       else
  printf("both the strings are same");
   }
}


int scmp(char *s1,char *s2)
{
    if(*s1!='\0'&&*s2!='\0')                                                    // 2     
    {
         while( *s1-*s2==0 && (*s1!='\0' || *s2!='\0'))             // 3
         {
               s1++;
               s2++;
         }
    }
    return(*s1-*s2);                                                                 // 4
}

No tengo instalado ahorita C pero creo que funciona. Fue copy pasteado de aquí:

http://www.programmingspark.com/2012/03/c-program-to-compare-two-strings.html

La verdad es que ese es uno de los ejercicios que más repiten en los colegios/universidades para aprender el uso de cadenas, si buscas un poco se encuentran varios ejemplos.

Desconectado JaiMe

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 1485
  • λ | h+
Re:Comparar 2 cadenas sin usar string.h
« Respuesta #5 : noviembre 09, 2012, 04:59:23 pm »
Aqui les dejo el ejemplo que puso rdoggsv en "vivo": http://ideone.com/lzzzEC. Modifique main() un poquito y al parecer funciona

« Última Modificación: noviembre 09, 2012, 05:02:02 pm por JaiMe »
"Unless you try to do something beyond what you have already mastered, you will never grow."
― Ralph Waldo Emerson

Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6531
  • "Once you go arch , u never go back"
    • SV CommunitY
Re:Comparar 2 cadenas sin usar string.h
« Respuesta #6 : enero 13, 2013, 04:32:59 am »
Hey que buena esta esa página Jaime gracias por compartir. En mi caso no tengo en la pc del trabajo instalado C y me sirve bastante ese compilador online