С клавиатуры вводятся символы, пока не встретится знак "?" - C (СИ)
Формулировка задачи:
Добрый день, подскажите, пожалуйста. Такая задача. Требуется - вводить символы до тех пор, пока не встретится знак "?" или количество введенных символов превысит 79. На экран вывести результат результат. Эта программа не реагирует на знак "?". В чем ошибка?
#include "stdio.h" #include "string.h" #include "locale.h" #includevoid main() { setlocale(LC_ALL, "Russian"); char str[80]; printf("\n Введите текст: "); fgets(str, 80, stdin); //cчитываем из потока ввода строку int i; for (i = 0; i < 80; i++) { if (str[i] == '\n') { str[i] = '?'; { str[i] = '\0'; break; } } } getchar(); system("pause"); }
Решение задачи: «С клавиатуры вводятся символы, пока не встретится знак "?"»
textual
Листинг программы
if (str[i] == '\?') { str[i] = '\0'; break; }
Объяснение кода листинга программы
- Вводится символ с клавиатуры и сохраняется в переменной
str[i]
- Проверяется, равен ли введенный символ
?
- Если символ равен
?
, то в переменнуюstr[i]
записывается символ0
(конец строки) и выполнение программы прерывается (выход из цикла) - Если символ не равен
?
, то программа продолжает ввод символов с клавиатуры и проверку на равенство?