На этом шаге мы рассмотрим особенности создания такой функции.
Функция сору() показана ниже:
void copy(char save[],char line[]) { int i=0; while((save[i]=line[i]) != '\0') i++; }
Эта функция похожа на предыдущую (substr()), но пересылка символов начинается с нулевого элемента входного массива line[] в нулевой элемент выходного массива save[]. Цикл организован с помощью конструкции while. Поскольку на входе имеется строка символов, то она обязательно заканчивается символом \0. В условии окончания цикла имеется выражение:
(save[i]=line[i]) != '\0'
Чтобы вычислить.это выражение, потребуется, во-первых, переслать сначала i-й символ из входного массива line[] в i-й элемент выходного массива save[] и после этого его значение проверить на совпадение с \0.
Если совпадения не будет, выполнится тело цикла while: индекс элемента массива возрастет на единицу, после чего станет готовым к тому, чтобы по нему переслать следующий символ из line[] в save[]. Поскольку эта функция ничего не возвращает, то отсутствует оператор return. Как только будет передан символ \0, цикл прекратится и программа "провалится" на закрывающую тело while фигурную скобку. Это означает, что функция завершилась.
На следующем шаге мы рассмотрим структуру основной программы.