Почему мы делаем такую простую вещь звучащей так сложно?
char array[SIZE];
... /* initialize array */
puts(array); /* prints the string/char array and a new line */
/* OR */
printf("%s", array); /* prints the string as is, without a new line */
char in array после окончания того, что вы хотите стать вашимстрока (т. е. если вы хотите, чтобы ваша строка читала «Hello», которая будет следующим символом после 'o'), должна быть завершающим символом NUL '\ 0'.Если вы используете функцию C для чтения ввода, который будет автоматически добавлен в конец вашего буфера.Вам нужно будет беспокоиться о том, чтобы сделать это вручную, если по какой-то причине вы по отдельности записываете символы в буфер или что-то еще.
РЕДАКТИРОВАТЬ: Как и в комментарии pmg, '\ 0' идет туда, где вы хотите, чтобы строка заканчивалась, поэтому, если вы хотите сократить вашу строку, вы можете просто переместить ее ближе кперед или иметь пустую строку , у вас просто есть array[0] = '\0';
.Это также можно использовать для токенизации небольших строк внутри одного буфера, как это делает strtok .то есть."Part1 \ 0Part2 \ 0Part3 \ 0".Но я думаю, что это выходит за рамки вопроса.
т.е.Вы хотели сохранить первые 3 символа алфавита в виде строки (не знаю, почему кто-то так поступил бы, но это всего лишь пример):
char array[4];
array[0] = 'a';
array[1] = 'b';
array[2] = 'c';
array[3] = '\0';
printf("%s\n", array);
Если у вас есть что-то вроде char array[] = "Hello";
'\ 0' автоматически добавляется для вас.