K&R exercise 3.2 - C (СИ)

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

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

Упражнение 3.2. Напишите функцию escape(s, t), которая при копировании текста из t в s преобразует такие символы, как новая строка и табуляция в "видимые последовательности символов" (вроде \n и \t). Используйте инструкцию switch. Напишите функцию, выполняющую обратное преобразование эскейппоследовательностей в настоящие символы. Аварийный останов программы.
include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int c, i=0;
    char t[200], s[200];
    printf ("t: ");
    while ((c = getchar()) != EOF)
    {
        t[i] = c;
        i++;
    }
    t[i] = '\0';
    escape (s, t);
    printf("\ns: ");
    for (i = 0; s[i] != '\0'; i++)
    {
        printf("%c ", s[i]);
    }
    return 0;
}
 
void escape (char s[], char t[])
{
    int c, i=0;
    while ((c = t[i]) != '/0') {
        switch (c) {
            case '\t': c = '\\t'; break;
            case '\n': c = ' \\n'; break;
        }
        s[i] = c;
        i++;
    }
}

Решение задачи: «K&R exercise 3.2»

textual
Листинг программы
  if (NULL==s || NULL==t) return;

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

  1. Проверяется условие, что переменные s и t не равны NULL.
  2. Если условие не выполняется, то происходит возврат из функции.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

15   голосов , оценка 4.267 из 5