• Sábado 14 de Diciembre de 2024, 17:59

Autor Tema:  Comparando una string, dos veces  (Leído 1495 veces)

portirijillo

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Comparando una string, dos veces
« en: Viernes 7 de Octubre de 2011, 03:47 »
0
Hola a todos nuevamente y tan rapido, ahora tengo otro problemita, busco tener impreso en pantalla el abecedario completo, y pedir al usuario introducir una tecla de estas. Si se introdujo una letra desaparecera de pantalla, Hasta aqui todo bien, el problema surge cuando el usuario vuelve a introducir una tecla previamente ya usada, deberia mostrar un mensaje dicioendo que ya fue introducida, pero para mi suerte las condiciones no las lleva como deseo. Este es mi codigo, espero puedan ayudarme.

Código: C
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <ctype.h>
  4.  
  5. #define ENTER 13
  6. #define MAX 30
  7.  
  8. void main(void);
  9. char cuenta(char [MAX],char,int,int);
  10. void inicializa(char [MAX],int *,int *);
  11. void pausa(void);
  12.  
  13. void main(void){
  14.    char abc[]="A B C D E F G H I J K L M N O P Q R S T U V W X Y Z";
  15.    char letra=0;
  16.    int x,y,intentos=0;
  17.    clrscr();
  18.    inicializa(abc,&x,&y);
  19.    do{
  20.    gotoxy(5,3);
  21.    printf("\nInserte la palabra : ");
  22.    letra=getche();
  23.    cuenta(abc,letra,x,y);
  24.    if(cuenta(abc,letra,x,y))
  25.       intentos++;
  26.    else
  27.       printf("\nYa la pusiste");
  28.    }while(intentos<3);
  29.    pausa();
  30. }
  31.  
  32. void pausa(void){
  33.    printf("\nPresione enter para continuar");
  34.    while(getch()!=ENTER);
  35. }
  36.  
  37. void inicializa(char a[MAX], int *x, int *y){
  38.    int i;
  39.    gotoxy(2,8);
  40.    *x=wherex();
  41.    *y=wherey();
  42.    puts(a);
  43. }
  44.  
  45.  
  46. char cuenta(char abc[MAX], char l, int x, int y){
  47.    int i;
  48.    gotoxy(x,y);
  49.    for(i=0;abc[i];i++)
  50.       if(abc[i]==toupper(l)){
  51.          abc[i]='_';
  52.          puts(abc);
  53.          return 1;
  54.       }
  55.    return 0;
  56. }
  57.  

portirijillo

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Solucionado
« Respuesta #1 en: Sábado 8 de Octubre de 2011, 21:34 »
0
Encontre mi error despues de serenarme un poco.

Código: C
  1. Publicidad
  2. Hola a todos nuevamente y tan rapido, ahora tengo otro problemita, busco tener impreso en pantalla el abecedario completo, y pedir al usuario introducir una tecla de estas. Si se introdujo una letra desaparecera de pantalla, Hasta aqui todo bien, el problema surge cuando el usuario vuelve a introducir una tecla previamente ya usada, deberia mostrar un mensaje dicioendo que ya fue introducida, pero para mi suerte las condiciones no las lleva como deseo. Este es mi codigo, espero puedan ayudarme.
  3.  
  4. Código: C
  5.  
  6.     #include <stdio.h>
  7.     #include <conio.h>
  8.     #include <ctype.h>
  9.      
  10.     #define ENTER 13
  11.     #define MAX 30
  12.      
  13.     void main(void);
  14.     char cuenta(char [MAX],char,int,int);
  15.     void inicializa(char [MAX],int *,int *);
  16.     void pausa(void);
  17.      
  18.     void main(void){
  19.        char abc[]="A B C D E F G H I J K L M N O P Q R S T U V W X Y Z";
  20.        char letra=0;
  21.        int x,y,intentos=0;
  22.        clrscr();
  23.        inicializa(abc,&x,&y);
  24.        do{
  25.        gotoxy(5,3);
  26.        printf("\nInserte la palabra : ");
  27.        letra=getche();
  28.        if(cuenta(abc,letra,x,y))
  29.           intentos++;
  30.        else
  31.           printf("\nYa la pusiste");
  32.        }while(intentos<3);
  33.        pausa();
  34.     }
  35.      
  36.     void pausa(void){
  37.        printf("\nPresione enter para continuar");
  38.        while(getch()!=ENTER);
  39.     }
  40.      
  41.     void inicializa(char a[MAX], int *x, int *y){
  42.        int i;
  43.        gotoxy(2,8);
  44.        *x=wherex();
  45.        *y=wherey();
  46.        puts(a);
  47.     }
  48.      
  49.      
  50.     char cuenta(char abc[MAX], char l, int x, int y){
  51.        int i;
  52.        gotoxy(x,y);
  53.        for(i=0;abc[i];i++)
  54.           if(abc[i]==toupper(l)){
  55.              abc[i]='_';
  56.              puts(abc);
  57.              return 1;
  58.           }
  59.        return 0;
  60.     }