Porque has definido dos veces las variables?
No he conseguido entender el codigo, porque a mitad se enreda bastante, asi que te he hecho mi version, creo que hace lo mismo que la tuya:
Código C:
Ver original#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#define H 100
int main(){
char contr[H] = "", correcta[] = {"hola"}; //correcta es la variable de la pass
int a; //contador
char c; //auxiliar
while(strcmp(contr
, correcta
)){ //mientras no sea igual printf("\n\tDame la contrasenha...\n\n"); a = 0;
do{
if(c != '\r'){ //sin esto añade \r al array y nunca será igual a correcta
contr[a] = c;
a++;
}
}
while(c != '\r');
if(!strcmp(contr
, correcta
)) printf("Contrasenha correcta\n"); else printf("Contraseña incorrecta\n"); }
return 0;
}
Recuerda inicializar los arrays siempre, parece una tonteria, pero suele dar problemas.
Si no entiendes algo dimelo, un saludo!