Autor
|
Tema: [C] Comparar 2 cadenas sin usar <string.h> (Leído 11,174 veces)
|
Ataulfo7
Desconectado
Mensajes: 13
|
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: int Compara (char s1[], char s2[]){ int i; for(i=0;(s1 [i]==s2[i]) &&(s1 [i] != '/0') && (s2[i] != '/0') ; i++); return (s1[i]-s2[i]); }
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
Mensajes: 3.412
ASMático
|
¿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
Mensajes: 13
|
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
Mensajes: 3.412
ASMático
|
#include <stdio.h> int Compara (char s1[], char s2[]){ int i; for(i=0;(s1 [i]==s2[i]) &&(s1 [i] != '\0') && (s2[i] != '\0') ; i++); return (s1[i]-s2[i]); } int main(){ char a[] = "Cadena 1", b[] = "Cadena 2"; }
|
|
|
En línea
|
|
|
|
Ataulfo7
Desconectado
Mensajes: 13
|
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
Mensajes: 3.412
ASMático
|
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
Mensajes: 13
|
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. Gracias!
|
|
|
En línea
|
|
|
|
Miseryk
Desconectado
Mensajes: 225
SI.NU.SA U.GU.DE (2NE1 - D-Unit)
|
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
Mensajes: 3.412
ASMático
|
Te dejan usar strcmp o strcmpi?
Me piden que compare dos cadenas sin usar <string.h>
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
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: 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
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Comparar cadenas sin usar strcmp
« 1 2 »
Programación C/C++
|
Rockmore
|
12
|
21,402
|
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
|
14 Mayo 2011, 18:52 pm
por Segurida
|
|
|
¿Comparar dos cadenas de caracteres en php?
PHP
|
Netstat89
|
5
|
11,092
|
1 Octubre 2012, 21:21 pm
por Shell Root
|
|
|
Error al comparar cadenas
Programación C/C++
|
amchacon
|
1
|
2,573
|
26 Enero 2013, 15:28 pm
por amchacon
|
|
|
Error al comparar cadenas en estructuras
Programación C/C++
|
ramona98
|
3
|
3,036
|
28 Agosto 2013, 10:23 am
por do-while
|
|