С клавиатуры вводятся символы, пока не встретится знак "?" - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый день, подскажите, пожалуйста. Такая задача. Требуется - вводить символы до тех пор, пока не встретится знак "?" или количество введенных символов превысит 79. На экран вывести результат результат. Эта программа не реагирует на знак "?". В чем ошибка?
#include "stdio.h"
#include "string.h"
#include "locale.h"
#include 
 
void 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;
}

Объяснение кода листинга программы

  1. Вводится символ с клавиатуры и сохраняется в переменной str[i]
  2. Проверяется, равен ли введенный символ ?
  3. Если символ равен ?, то в переменную str[i] записывается символ 0 (конец строки) и выполнение программы прерывается (выход из цикла)
  4. Если символ не равен ?, то программа продолжает ввод символов с клавиатуры и проверку на равенство ?

Оцени полезность:

9   голосов , оценка 4.667 из 5
Похожие ответы