Для начала
char s2[]="a lonely road";
char s1[]="Success is ";
Объявляет s2
с размером 14 и s1
с размером 12. Следовательно, когда вы пишете символы от 12 до s1
, вы вызываете неопределенное поведение.
Измените его на.
char s1[100]="Success is ";
Чтобы ответить на ваш вопрос.
В c
строки имеют нулевое значение (\0
), прерванные по определению.Следовательно, printf
будет искать \0
в предоставленной строке, чтобы завершить печать string
.
Если string
не содержит символ \0
, он будет продолжать печатать символы дов конечном итоге он вызывает неопределенное поведение.