Fazer um programa para cadastro e diálogo de login. O programa deve:
Cadastrar um nome de usuário via teclado. O nome de usuário tem, no máximo, 8 caracteres, sendo válidos somente os caracteres numéricos e as letras maiúsculas ou minúsculas. Somente os caracteres válidos devem ser exibidos no console durante a digitação do nome de usuário.

Passo 1

Beleza! O enunciado pede um programinha que cadastra um nome de usuário, mas com restrições: no máximo 8 caracteres e só pode entrar letra (maiúscula ou minúscula) e número. Durante a digitação, se a pessoa apertar uma tecla que não é válida, nada aparece no console (ela nem vê essa “tecla errada”).
Conteúdo envolvido: lógica de programação (laços e condição), manipulação de caracteres, função pra ler caractere sem eco (dependendo da linguagem: por exemplo, getch() em C, ou algo similar) e testes de caractere (é letra? é número?).

Passo 2

Vamos ler caracter por caracter até o usuário apertar Enter ou atingir 8 caracteres. Então precisamos:
  1. Uma variável que armazene o nome (string vazia).
  2. Um laço que roda enquanto o comprimento da string for menor que 8.
  3. Dentro do laço, a gente lê um caractere sem imprimir nada (função de leitura não-eco).

Passo 3

Depois de ler o caractere, aplicar as regras:
  • Se for dígito ('0'..'9') ou letra maiúscula ('A'..'Z') ou letra minúscula ('a'..'z'), a gente:
    a) adiciona esse caractere à string do nome;
    b) imprime ele no console;
  • Se for Enter ('\n' ou '\r'), a gente sai do laço imediatamente (terminou o nome);
  • Caso contrário, ignora o caractere (não faz nada).
Para testar se é letra ou dígito, você pode usar funções prontas (por exemplo, isalpha() e isdigit() em C) ou comparar códigos ASCII.

Passo 4

Quando o laço terminar (chegou a 8 caracteres ou o usuário apertou Enter), a gente já tem o nome validado e exibido aos poucos. Aí pode prosseguir com o resto do login.

Resposta

Pseudocódigo geral (sem detalhes de biblioteca, mas ilustrando a lógica):
inicializa nome ← ""       // string vazia
enquanto (tamanho(nome) < 8) faça
    ch ← lerCaractereSemEco()
    se (ch é '\n' ou ch é '\r') então
        interrompe o laço
    fim se
    se (éDigito(ch) OU éLetra(ch)) então
        nome ← nome + ch
        escreveNaTela(ch)
    fim se
fim enquanto

// Aqui, 'nome' tem até 8 chars e só com letras/dígitos, e foi mostrado certinho

Exercícios relacionados