Olá!
Notável que você está começando com a linguagem c, então tentarei lhe explicar de forma simples:
Você está lidando com a string “Ronaldinho”, logo, se você quiser comparar strings, não irá ser como linguagens de alto nivel, você precisará incluir a lib, string.h, ou criar a sua própria que lide com comparação de strings.
Você está utilizando a função scanf(), não é recomendado, mas ignorando isso… troque o “%c” por “%s”, e defina a variável que levará o valor de stdin, desta forma: char user_input[x]
troque o x pelo valor do array que levará os characteres passados.
Outra ponto, você está criando um “menu” com while, para receber um string ao invéz de do-while e está criando muitas variáveis que não são necessárias.
Segue exemplo em código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char input[56];
do {
printf("Please insert the key: ");
scanf("%s", &input);
} while ((strcmp("Ronaldinho", input)) != 0);
if ((strcmp("Ronaldinho", input)) == 0) {
printf("Access granted!\n");
return 0;
} else {
printf("Access denied!\n");
return 1;
}
}
Uma ideia para você, tente limitar o numero de tentativas do menu utilizando size_t. Ou tente também separar o menu em uma função diferente de main(). A e digite “ola Ronaldinho” nesse menu, irá validar, mesmo o usuário não ter digitado apenas, “Ronaldinho”, solução? Pesquise como utilizar a função fgets().
Mais informações:
- C strcmp()
- C Input and Output
- C strings
Espero ter lhe ajudado, até mais!