Графическое объяснение - PullRequest
0 голосов
/ 02 апреля 2019
#include <stdio.h>

int main()
{
   int c;  /* Present Character */
   int old_c; /* Previous Character */

   while ((c = getchar()) != EOF) {
      if (old_c == ' ' && c != ' ') {
         putchar(' ');
         putchar(c);
      } else if(c != ' ') {
         putchar(c);
      }
      old_c = c;
   }
   return 0;
}

Я не очень понимаю, как работает этот код. Это решение для языка C Упражнение на языке программирования 1.9:

Упражнение 1-9:

Напишите программу для копирования ее входных данных в выходные данные, заменяя каждую строку одного или нескольких пробелов одним пробелом.

Язык программирования C 2-е издание,
Б. Керниган и Д. Ричи, Прентис Зал, стр. 20.

Так вот моя проблема

Например, я набираю как Ввод: Hello World\n

это '\n' не последний символ? сохранить в old_c : old_c = c;

Может кто-нибудь объяснить мне, как работает код, так как я действительно хочу изучать язык программирования и программирования c. Я очень новичок;

1 Ответ

0 голосов
/ 02 апреля 2019

Этот код делает 9 вещей:

  1. Сначала он объявляет некоторые переменные c и old_c,
  2. Затем он считывает ввод с клавиатуры в c.
  3. После этого он проверяет, является ли old_c значением и c не .
  4. Если это так, он печатает пробел и последний нажатый символ.
  5. В противном случае он просто печатает последний нажатый символ.
  6. Затем для old_c устанавливается значение c.
  7. Переход к 2 до тех пор, пока ввод не будет остановлен (обычно сCTRL + D или клавиша ввода)
  8. Затем загружается возвращаемое значение (* в данном случае 0),
  9. , и оно завершается с этим возвращаемым значением.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...