Функция копирования строк - C (СИ)
Формулировка задачи:
Вобщем, есть функция копирования строк, выглядит так:
Функция работает. Работает правильно. Тут как бы все понятно, на вход две строки и конкретные элементы идут из строки t в строку s, потом происходит переход к следующему элементу.
Вопрос, при каком условии, то, что написано в скобках даст false? То есть, почему после копировании всей строки он останавливается?
void strcpy4(char* s, char* t){ while(*s++=*t++); }
Решение задачи: «Функция копирования строк»
textual
Листинг программы
void strcpy4(char* s, char* t){ while(*s++=*t++); } int main() { char s1[]="manchesterunited"; char s2[]="juventus"; strcpy4(s1,s2); while('\0') printf("To:\n%s\n%s\n", s1,s2); return 0; }
Объяснение кода листинга программы
- В функции
strcpy4
происходит копирование строкиt
в строкуs
. - В функции используется цикл
while
, который продолжается до тех пор, пока не будет равен*s
нулю. - Внутри цикла происходит присваивание значения
*t
элементу строкиs
, после чего оба указателя перемещаются на следующий элемент. - В функции
main
создаются две строкиs1
иs2
, содержащиеmanchesterunited
иjuventus
соответственно. - Функция
strcpy4
вызывается с аргументамиs1
иs2
, что приводит к копированию строкиjuventus
в строкуmanchesterunited
. - С помощью цикла
while
и оператораprintf
выводятся строкиs1
иs2
. - В конце программы возвращается значение 0, что означает успешное завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д