str_1
и str_2
- это массивы символов, и способ заполнения данных подходит. Но когда вы используете метод puts()
, вы должны отметить конец строки символом '\0'
, как описано в этой ссылке http://www.cplusplus.com/reference/cstdio/puts/
Функция начинается копирование с указанного адреса (str), пока не достигнет завершающего нулевого символа ('\ 0'). Этот завершающий нулевой символ не копируется в поток.
Таким образом, вам нужно добавить еще одно место в str_1
и str_2
для завершающего нуля символа:
char str_1[6], str_2[6], my_str[] = "hello world";
Затем, скопировав подстроки в эти массивы, поместите '\ 0' сразу после последнего скопированного символа, например:
//storing hello in str_1.
int i;
for (i = 0; i <= 4; ++i) {
str_1[i] = my_str[i];
}
str_1[i] = '\0';