Проверка введенной строки - C (СИ)
Формулировка задачи:
люди добрые нужна помощь. значит так,
пользовотель должен ввести имя и для окончания нажать точку.
можно пользоваться только scanf и не льзя пользоваться strings.
тоесть код должен выглядеть таким образом:
scanf("%c",&name);
луп или отдельная функция должна проверять что все буквы мальенкие и в конце обязана быть точка.
количество в веденых пользователем букв не ограничено, до точки, после появления точки должно выйти сообщение,
printf("Finish");
заранее спасибо)
естественно для оканчания нужно нажать на enter.
в общем должно быть что то типо двух лупов, которые проверяют данные.
ломаю голову вторую неделю, с стрингами это довольно та ки фигня, но вот без них, пп.
Решение задачи: «Проверка введенной строки»
textual
Листинг программы
int main(){
char name;
do
{
printf("Enter your a doctor name: ");
scanf("%c", &name);/*enter a name*/
if (Doc_Name(name) == 1)/*func to check a name*/
break;/*if function return 1 exit*/
else {
printf("Invalid Input,Try again\n");
flushall();
}
} while (1);
Объяснение кода листинга программы
- Объявлена переменная типа char
name. - Запущен бесконечный цикл
do-while(1). - В каждой итерации цикла программа запрашивает у пользователя ввести имя врача с помощью функции
printfиscanf. - С помощью функции
scanfзначение введенного имени сохраняется в переменнойname. - Функция
Doc_Name(name)проверяет введенное имя. - Если функция
Doc_Nameвозвращает 1, то цикл прерывается с помощью оператораbreak. - Если функция
Doc_Nameвозвращает значение, отличное от 1, то выводится сообщение об ошибке с помощью функцииprintf, а затем выполняется функцияflushall, предназначенная для очистки буфера ввода.