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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Comparando cadenas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 [3] Ir Abajo Respuesta Imprimir
Autor Tema: Comparando cadenas  (Leído 6,665 veces)
armizh

Desconectado Desconectado

Mensajes: 187

His brain caught in a hole...


Ver Perfil WWW
Re: Comparando cadenas
« Respuesta #20 en: 25 Enero 2012, 20:33 pm »

Pues la primera vez funciona y el resto no porque simplemente el for modifica el valor hasta 10 y luego tu no lo seteas a 0 para que vuelva a buscar en todo el puntero. Tu bucle for y el if...else son deficientes, necesitas mejorarlos. Si aun asi no funciona no estaria mal que probaras con un switch en vez de if.
Código
  1. int salir = 0;
  2. char pregunta[3];
  3.  
  4. //Mientras salir sea 0 seguimos con el bucle
  5. while(salir==0) {
  6.    //Comparamos nombre[i] y aux
  7.    switch(strcmp(nombre[i],aux)){
  8.        case 0: //En caso de que haya correspondencia
  9.            printf("El nombre se encuentra entre los anteriores\n");
  10.            salir++;
  11.            break;
  12.        default:
  13.            i++;
  14.            break;
  15.    }
  16.    while(i==10) {
  17.        //Si es 's' lo repite, cualquier otra cosa termina el bucle
  18.        printf("Desea volver a buscar? [s/*]");
  19.        gets(pregunta);
  20.        switch(strcmp(pregunta,"s") {
  21.            case 0:
  22.                salir=0;
  23.                i=0;
  24.                break;
  25.            default:
  26.                salir++;
  27.                break;
  28.        }
  29.    }
  30. }
Esto es lo que hubiese intentado yo en tu caso, aunk no lo he probado aun xd. Ciertamente este código no te avisa si estas equivocado, pero eso es lo minimo. Pues analizalo y crea tu propio algoritmo, esto es una idea de lo que mas o menos podrias hacer y recalco: no lo he probado.
Este codigo necesita de las declaraciones y el primer for. Un consejo: yo uso for solo cuando es necesario, si te produce problemas cambialo y usa otro bucle que te de mas libertades.
Saludos.


En línea

Visita mi blog:
http://armizh.10h.us/
Fnx, fork de FreeNOS:
Código
  1. git clone https://github.com/armizh/Fnx
Hamster, Entorno Integrado de Desarrollo C/C++:
Código
  1. git clone https://github.com/armizh/Hamster
Eternal Idol
Moderador
***
Desconectado Desconectado

Mensajes: 5.645


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Comparando cadenas
« Respuesta #21 en: 25 Enero 2012, 21:00 pm »

Pues la primera vez funciona y el resto no porque simplemente el for modifica el valor hasta 10 y luego tu no lo seteas a 0 para que vuelva a buscar en todo el puntero.

No, no es asi ...  for (i=0;i<10;i++){

Funciona solamente cuando se busca el primer elemento del array, sea la primera o la decima vez que se busca.

Si aun asi no funciona no estaria mal que probaras con un switch en vez de if.

No tiene ningun sentido reemplazar el if por un switch cuando solo interesan uno o dos valores a comparar.

Un consejo: yo uso for solo cuando es necesario, si te produce problemas cambialo y usa otro bucle que te de mas libertades.

Justamente for es el bucle que mas libertad ofrece, hasta se puede omitir la inicializacion, la condicion y el incremento para tener un bucle infinito.

Por favor, asegurate de lo que vas a escribir, no es bueno que los que estan aprendiendo se confundan con conceptos erroneos.


DickGumshoe: usa mas la cabeza y menos las manos para escribir mensajes.


« Última modificación: 25 Enero 2012, 21:16 pm por Eternal Idol » En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: 1 2 [3] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cadenas...
Programación Visual Basic
programatrix 3 1,336 Último mensaje 30 Diciembre 2005, 22:13 pm
por programatrix
Comparando resultados[c]
Programación C/C++
Franny 2 3,828 Último mensaje 10 Diciembre 2010, 02:55 am
por Franny
[Solucionado] Comparando 2 arrays
PHP
aaronduran2 2 1,448 Último mensaje 11 Febrero 2012, 08:09 am
por aaronduran2
registros alterados comparando 2 tablas
Bases de Datos
fallout20xx 1 1,293 Último mensaje 24 Septiembre 2012, 13:34 pm
por HdM
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines