me gsutaria saber de q forma de comparar 2 cadenas sin utilizar strcmp
Puedes recorrerlas caracter a caracter. Cuando un par de caracteres sean diferentes, es que las cadenas son diferentes.
Si una cadena es más larga que otra, es que son diferentes.
Si llegas al final y todos los caracteres coincidieron, es que son iguales.
Pues intente hacer esto, es muy primitivo, Debe tener algunos fallos, pero bueno es sin utilizar strcmp de la libreria string.h
#include <stdio.h>
#include <stdlib.h>
#define N 10
int main(){
char cadena1[N];
char cadena2[N];
char aux='\n';
int i=0,j=0,k=0,l=0;
printf("Escribe algo: ");
fflush(stdin);
scanf("%s",&cadena1);
printf("Escribe otra cosa: ");
fflush(stdin);
scanf("%s", &cadena2);
for(i=0; i<N && aux != '\0'; i++){
if(cadena1[i] == cadena2[i]){
k++;
}
else{
l++;
}
aux=cadena1[i];
}
if(l == 0){
printf("Son iguales.\n");
}
else{
printf("NO son iguales");
}
system("pause");
return 0;
}
El problema ahí es que si cadena2 es más larga que cadena1, y puede fallar.
Por ejemplo:
cadena1 = "abcde\0"
cadena2 = "abcdefgh"
2 datos más:
No necesitas "aux", puedes poner cadena!='\0'. No importa si lo haces por legibilidad o lo que sea, solo es una curiosidad.
Después del "l++" deberías poner un "break;" para salir del bucle. Así no sigues dando vueltas innecesarias.
Te animo a que hagas una función de ese código.
A veces hago esto:
#include <string>
if(string(cadena) == string(cadena2))
Un saludo xD
Cita de: patilanz en 17 Agosto 2015, 10:42 AM
A veces hago esto:
#include <string>
if(string(cadena) == string(cadena2))
Un saludo xD
Ten en cuenta que eso es C++.