Загрузка [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

printРабочее место участника

printЗадачи

2606. Разбиение на слова

Ограничения: время – 250ms/500ms, память – 128MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Напишите функцию split, которой передается строка, в которой находятся несколько слов, разделенных одним пробелом. Функция должна поместить в массив, переданный вторым аргументом, указатели на начало слов. Символы пробела (' ') в строке нужно заменить на нулевой символ ('\0'). Последним элементом в массив нужно поместить нулевой указатель (NULL).

Напишите функцию void print(char **), которая печатает слова из массива указателей в обратном порядке. Для этого проверяется первый указатель в массиве. Если он равен NULL, то выполнение функции заканчивается. Иначе функция print вызывается рекурсивно для печати оставшейся части массива, а затем на отдельной строке печатается слово, на которое указывает первый элемент массива.

Пример вызова функций:

#include <stdio.h>
// определения split и print
...
int main()
{ char str[1001];
  char *words[101];
  scanf("%1000[^\n]",str); getchar();
  split(str,words);
  print(words);
}

В качестве решения необходимо отправить только функции split и print.

loading