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)
| | |-+  [C] Comparar 2 cadenas sin usar <string.h>
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [C] Comparar 2 cadenas sin usar <string.h>  (Leído 11,174 veces)
Ataulfo7

Desconectado Desconectado

Mensajes: 13



Ver Perfil
[C] Comparar 2 cadenas sin usar <string.h>
« en: 8 Abril 2015, 17:55 pm »

Hola buenas, soy nuevo en el foro, ya que he indagando por internet en busca de soluciones a un problema de programación en C e visto muchas veces este foro, pero no encontré la solución...
Me piden que compare dos cadenas sin usar <string.h>, y que si son iguales de un 0, si la primera cadena es mayor que la segunda de un 1, y viceversa de un -1, pero lo único que me dan para hacerlo es esto:

Código
  1. int Compara (char s1[], char s2[]){
  2. int i;
  3. for(i=0;(s1 [i]==s2[i]) &&(s1 [i] != '/0') && (s2[i] != '/0') ; i++);
  4. return (s1[i]-s2[i]);
  5. }
  6.  
Seria necesario el uso de apuntadores?? Es que estoy intentando de todo, pero no me saleee :S, si alguien me puede ayudar... Gracias de antemano! ^^


« Última modificación: 8 Abril 2015, 18:22 pm por Xukyllo » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: [C] Comparar 2 cadenas sin usar <string.h>
« Respuesta #1 en: 8 Abril 2015, 18:30 pm »

¿Cómo que te dan eso para hacerlo? Esa función es casi igual a lo que describes que hay que hacer. ¿Qué más necesitas?


En línea

Ataulfo7

Desconectado Desconectado

Mensajes: 13



Ver Perfil
Re: [C] Comparar 2 cadenas sin usar <string.h>
« Respuesta #2 en: 8 Abril 2015, 18:39 pm »

A la hora de crear el main, y ponerme a crear las cadenas de caracteres para poder compararlas, me quedo pillado y no se como seguir. Es decir para que las dos cadenas de caracteres que creé, se comparen con ese código y salga el resultado...   :-\
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: [C] Comparar 2 cadenas sin usar <string.h>
« Respuesta #3 en: 8 Abril 2015, 18:44 pm »

Código
  1. #include <stdio.h>
  2.  
  3. int Compara (char s1[], char s2[]){
  4.    int i;
  5.    for(i=0;(s1 [i]==s2[i]) &&(s1 [i] != '\0') && (s2[i] != '\0') ; i++);
  6.    return (s1[i]-s2[i]);
  7. }
  8.  
  9. int main(){
  10.    char a[] = "Cadena 1",
  11.         b[] = "Cadena 2";
  12.    printf("%d", Compara(a,b));
  13. }
  14.  
En línea

Ataulfo7

Desconectado Desconectado

Mensajes: 13



Ver Perfil
Re: [C] Comparar 2 cadenas sin usar <string.h>
« Respuesta #4 en: 8 Abril 2015, 18:55 pm »

El main era muy similar al que yo hacia, solo que no estaba bien jaja, Muchas gracias por tu ayuda!
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: [C] Comparar 2 cadenas sin usar <string.h>
« Respuesta #5 en: 8 Abril 2015, 19:00 pm »

si son iguales de un 0, si la primera cadena es mayor que la segunda de un 1, y viceversa de un -1

Cabe decir que esa función no returna "1 y -1", sino que retorna la diferencia entre los primeros caracteres diferentes encontrados.
En línea

Ataulfo7

Desconectado Desconectado

Mensajes: 13



Ver Perfil
Re: [C] Comparar 2 cadenas sin usar <string.h>
« Respuesta #6 en: 8 Abril 2015, 19:35 pm »

Ya vi que lo que hace es restar la diferencia de números, pero no importa ya que eso ahora vere como arreglarlo, lo único en lo que no caia era en hacer para que me leyera las dos cadenas.  :silbar:
Gracias!
En línea

Miseryk

Desconectado Desconectado

Mensajes: 225


SI.NU.SA U.GU.DE (2NE1 - D-Unit)


Ver Perfil
Re: [C] Comparar 2 cadenas sin usar <string.h>
« Respuesta #7 en: 8 Abril 2015, 21:39 pm »

Te dejan usar strcmp o strcmpi?
En línea

Can you see it?
The worst is over
The monsters in my head are scared of love
Fallen people listen up! It’s never too late to change our luck
So, don’t let them steal your light
Don’t let them break your stride
There is light on the other side
And you’ll see all the raindrops falling behind
Make it out tonight
it’s a revolution

CL!!!
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: [C] Comparar 2 cadenas sin usar <string.h>
« Respuesta #8 en: 8 Abril 2015, 21:41 pm »

Te dejan usar strcmp o strcmpi?

Me piden que compare dos cadenas sin usar <string.h>
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: [C] Comparar 2 cadenas sin usar <string.h>
« Respuesta #9 en: 9 Abril 2015, 04:10 am »

Me piden que compare dos cadenas sin usar <string.h>, y que si son iguales de un 0, si la primera cadena es mayor que la segunda de un 1, y viceversa de un -1
Dos comentarios:

* En la condición del bucle si los caracteres son iguales no es necesario verificar que ambos sean diferentes de '\0', basta con comparar solo uno (el que sea).

* Para retornar 1, 0 o -1 dependiendo si la primera cadena es mayor, igual o menor que la segunda basta con utilizar los operadores relaciones ">" y "<", de esta forma:
Código
  1. return (s1[i] > s2[i]) - (s1[i] < s2[i]);

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Comparar cadenas sin usar strcmp « 1 2 »
Programación C/C++
Rockmore 12 21,402 Último mensaje 25 Octubre 2010, 07:01 am
por do-while
[Solucionado] Comparar un String con cada una de las partes de otro String « 1 2 »
.NET (C#, VB.NET, ASP)
Segurida 13 12,390 Último mensaje 14 Mayo 2011, 18:52 pm
por Segurida
¿Comparar dos cadenas de caracteres en php?
PHP
Netstat89 5 11,092 Último mensaje 1 Octubre 2012, 21:21 pm
por Shell Root
Error al comparar cadenas
Programación C/C++
amchacon 1 2,573 Último mensaje 26 Enero 2013, 15:28 pm
por amchacon
Error al comparar cadenas en estructuras
Programación C/C++
ramona98 3 3,036 Último mensaje 28 Agosto 2013, 10:23 am
por do-while
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines