18/02/2006, 17:30
|
| | Fecha de Ingreso: febrero-2006
Mensajes: 4
Antigüedad: 18 años, 10 meses Puntos: 0 | |
ya tuvo Aquí está el código arreglado:
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <dos.h>
void imprime(int largo_f);
char palabrasecreta[20];
void main (void)
{
clrscr();
char largo='\0'; //inicializando variable
for(int i=0;i<20;i++) //limpiando la cadena vacia
palabrasecreta[i]='\0';
gotoxy(15,13);
printf(" Introduce la palabra secreta ----> ");
gets(palabrasecreta);
clrscr();
largo=strlen(palabrasecreta); /* canculo la longitud palabra */
gotoxy(32,12);
imprime(largo); /* imprimo "-" para cada letra que intrega el largo de la palabra*/
getch();
}
/* imprime los guiones en vez de caracxteres*/
void imprime(int largo_f)
{
int i=0; //inicializando variable
printf("%c",palabrasecreta[0]); //imprimimos el primer caracter de la cadena
for(i=1;i<largo_f-1;i++){ //imprimimos desde el segundo caracter hasta el penultimo de la cadena
printf(" _ ");
}
printf("%c",palabrasecreta[largo_f-1]); //imprimimos el ultimo caracter de la palabra
return ;
}
Lo que estabas haciendo mal era que a la hora de imprimir la ultima letra, imprimias: printf("%c",palabrasecreta[largo_f]); cuando en realidad lo que tenías que imprimir era printf("%c",palabrasecreta[largo_f-1]);, porque largo_f lo que te da es el tamaño de la cadena, no así el último caracter de la cadena, porque la cadena empieza desde 0, en cambio el tamaño de ésta se empieza a contar desde 1. Y te arreglé otras cositas por allí que te irás dando cuenta cuando veas el programa. |