str1[i]
всегда один и тот же элемент, потому что вы никогда не увеличиваете i
.Таким образом, все остальные элементы остаются нетронутыми, и никогда не будет возможности скопировать нулевой терминатор q
.
Затем, когда вы его печатаете, программа имеет неопределенное поведение.
Вероятно, было бы лучше зациклить i
от 0
до len
.
Вам также следует рассмотреть возможность инициализации ваших массивов с помощью = {}
, чтобы они в первую очередь содержали нули.
Кроме того, ваш scanf
чрезвычайно небезопасен, так как не выполняет проверку границ.