Advertisement
Guest User

Untitled

a guest
Oct 20th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.95 KB | None | 0 0
  1. // так как из стека легко удалять последний елемент
  2.             Stack<char> passwordChars = new Stack<char>();
  3.             ConsoleKeyInfo keyInfo;
  4.  
  5.             do
  6.             {
  7.                 Console.Clear();
  8.                 Console.WriteLine("Введите прароль");
  9.                 for (int i = 0; i < passwordChars.Count; i++)
  10.                 {
  11.                     Console.Write("*"); //количество звезочек по количеству символов в пароле
  12.                 }
  13.  
  14.                 keyInfo = Console.ReadKey(intercept: true);
  15.  
  16.                 // если бекспейс - удаляем последний елемент из стека. если в стеке не пусто
  17.                 if (keyInfo.Key == ConsoleKey.Backspace && passwordChars.Count > 0)
  18.                 {
  19.                     passwordChars.Pop();
  20.                 }
  21.  
  22.                 char character = keyInfo.KeyChar;
  23.  
  24.                 // проверяем на допустимый символ
  25.                 if (char.IsLetterOrDigit(character) || char.IsSymbol(character) || char.IsPunctuation(character))
  26.                 {
  27.                     passwordChars.Push(character);
  28.                 }
  29.  
  30.             } while (keyInfo.Key != ConsoleKey.Enter); // выполняем, пока не нажат ентер
  31.  
  32.             char[] charArray = passwordChars.ToArray(); //превращаем стек в массив
  33.             Array.Reverse(charArray); //разворачиваем массив, потому, что при превращении стека в масив значения вытягиваются с конца стека,
  34.             // от последнего положеного елемента, до первого
  35.             string password = new string(charArray); //превращаем массив в строку
  36.  
  37.             Console.WriteLine(password);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement