Вы можете использовать strncpy
для дублирования части вашей строки, которую вы хотите напечатать, но вам нужно будет позаботиться о добавлении нулевого терминатора, так как strncpy
этого не сделаетесли он не встречает никого в исходной строке.Как указал Джерри Коффин, лучшим решением является использование соответствующей функции *printf
для записи или копирования нужной подстроки.
Хотя strncpy
может быть опасно в руках кого-то, кто к этому не привык, это может быть быстрее с точки зрения времени выполнения по сравнению с решением в стиле printf
/ sprintf
/ fprintf
, поскольку нет никаких накладных расходов при работе со строками форматирования.Я предлагаю избегать strncpy
, если вы можете, но это полезно знать на всякий случай.
size_t len = 5;
char sub[6];
sub[5] = 0;
strncpy(sub, str + 5, len); // char[] to copy to, char[] to copy from(plus offset
// to first character desired), length you want to copy