На десятом занятии мы работали со строками. Мы вспомнили, что строка в C/C++ - это массив символов. Строка всегда завершается символом '\0' (нуль-терминатор). Нуль-терминатор - это один символ (хоть и обозначается на письме двумя - обратный слэш, ноль), означающий конец строки. В C/C++ существует два способа работы со строками:
- работа со строкой как с массивом символов
- работа с использованием специальных функций обработки строк
1. Чаще всего при вводе какого бы то ни было пароля на экране устройства отображаются звездочки - вспомните банкомат, телефон, социальные сети и т.д.. Это делается для конфиденциальности ваших данных, т.е. для того, чтобы человек, находящийся рядом, не мог (нарочно или случайно) узнать ваш пароль. Чтобы попрактиковаться в работе со строками мы решили написать программу, которая запрашивает у пользователя пароль, сравнивает его с каким-то заданным словом (в нашей программе - "kulakov") и сообщает о правильности введенного пароля.
2. Чтобы создать такую программу, нам необходимо, чтобы вместо вводимого символа на экране отображалась звездочка '*' (или какой-нибудь другой знак). Чтобы вводимый символ не отображался на экране, будем читать его из буфера клавиатуры (консоли), а не из буфера операционной системы. Для этого используется функция "getch()", расположенная в библиотеке "conio.h". После прочтения очередного символа нужно поместить на экран звездочку (или другой символ). Это сделаем любой функцией вывода, например putch():
puts("Введите пароль:");
for(int i=0;i<10;i++)
{
str[i]=getch(); // читаем из буфера клавиатуры
putch('*'); // а на экран посылаем звездочку
}
str[l-1]='\0'; //не забываем про нуль-терминатор в конце
Листинг программы pass:
Пример выполнения программы (введен вначале неверный, затем верный пароль):
Скачать листинг программы pass (в текстовом формате)
2. Чтобы создать такую программу, нам необходимо, чтобы вместо вводимого символа на экране отображалась звездочка '*' (или какой-нибудь другой знак). Чтобы вводимый символ не отображался на экране, будем читать его из буфера клавиатуры (консоли), а не из буфера операционной системы. Для этого используется функция "getch()", расположенная в библиотеке "conio.h". После прочтения очередного символа нужно поместить на экран звездочку (или другой символ). Это сделаем любой функцией вывода, например putch():
puts("Введите пароль:");
for(int i=0;i<10;i++)
{
str[i]=getch(); // читаем из буфера клавиатуры
putch('*'); // а на экран посылаем звездочку
}
str[l-1]='\0'; //не забываем про нуль-терминатор в конце
Листинг программы pass:
Пример выполнения программы (введен вначале неверный, затем верный пароль):
Комментариев нет:
Отправить комментарий