Ну, массив из 10 символов char
не будет соответствовать "mangobatao"
, так как в нем 10 символов - места для нулевого терминатора нет. Это означает, что вы вызвали неопределенное поведение, поэтому может произойти все, что угодно.
В этом случае выглядит, как будто ваш компилятор выложил str2
перед str1
в памяти, поэтому, когда вы вызываете scanf
для заполнения str2
, более длинная строка перезаписывает начало str1
. Вот почему вы видите конец того, что, по вашему мнению, должно быть в str2
при попытке напечатать str1
. Ваш пример будет работать нормально, если вы используете длину 100.