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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ay forma de comparar 2 cadenas sin strcmp
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ay forma de comparar 2 cadenas sin strcmp  (Leído 4,613 veces)
masterkeyes

Desconectado Desconectado

Mensajes: 9


Ver Perfil
ay forma de comparar 2 cadenas sin strcmp
« en: 16 Agosto 2015, 23:08 pm »

me gsutaria saber de q forma de comparar 2 cadenas sin utilizar strcmp


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: ay forma de comparar 2 cadenas sin strcmp
« Respuesta #1 en: 17 Agosto 2015, 00:18 am »

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.


En línea

Nachillo

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: ay forma de comparar 2 cadenas sin strcmp
« Respuesta #2 en: 17 Agosto 2015, 02:04 am »

Pues intente hacer esto, es muy primitivo, Debe tener algunos fallos, pero bueno es sin utilizar strcmp de la libreria string.h

Código
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #define N 10
  5.  
  6. int main(){
  7. char cadena1[N];
  8. char cadena2[N];
  9. char aux='\n';
  10. int i=0,j=0,k=0,l=0;
  11.  
  12. printf("Escribe algo: ");
  13. fflush(stdin);
  14. scanf("%s",&cadena1);
  15. printf("Escribe otra cosa: ");
  16. fflush(stdin);
  17. scanf("%s", &cadena2);
  18.  
  19. for(i=0; i<N && aux != '\0'; i++){
  20. if(cadena1[i] == cadena2[i]){
  21. k++;
  22. }
  23. else{
  24. l++;
  25. }
  26. aux=cadena1[i];
  27.  
  28. }
  29.  
  30. if(l == 0){
  31. printf("Son iguales.\n");
  32. }
  33. else{
  34. printf("NO son iguales");
  35. }
  36.  
  37. system("pause");
  38. return 0;
  39. }
  40.  
  41.  
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: ay forma de comparar 2 cadenas sin strcmp
« Respuesta #3 en: 17 Agosto 2015, 02:54 am »

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.
En línea

patilanz


Desconectado Desconectado

Mensajes: 481

555-555-0199@example.com


Ver Perfil WWW
Re: ay forma de comparar 2 cadenas sin strcmp
« Respuesta #4 en: 17 Agosto 2015, 10:42 am »

A veces hago esto:

Código
  1. #include <string>
  2. if(string(cadena) == string(cadena2))

Un saludo xD
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: ay forma de comparar 2 cadenas sin strcmp
« Respuesta #5 en: 17 Agosto 2015, 15:30 pm »

A veces hago esto:

Código
  1. #include <string>
  2. if(string(cadena) == string(cadena2))

Un saludo xD

Ten en cuenta que eso es C++.
En línea

Páginas: [1] 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,558 Último mensaje 25 Octubre 2010, 07:01 am
por do-while
Intento comparar cadenas [novato] « 1 2 3 »
Programación C/C++
barnix456 20 13,462 Último mensaje 7 Mayo 2012, 20:37 pm
por barnix456
¿Comparar dos cadenas de caracteres en php?
PHP
Netstat89 5 11,125 Último mensaje 1 Octubre 2012, 21:21 pm
por Shell Root
Error al comparar cadenas
Programación C/C++
amchacon 1 2,611 Último mensaje 26 Enero 2013, 15:28 pm
por amchacon
Ayuda: Recorrer cadenas usando strcmp (alternativas), carácter '/0'.
Programación C/C++
Tolkien 2 2,564 Último mensaje 5 Junio 2014, 17:28 pm
por Tolkien
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines