Как можно скопировать строку в структуру в которой есть поле (массив) строки

Есть у меня структура вида:

struct HeaderFile {
char name[20];
char textExtension[4];
uint32_t size;
uint32_t crc;
} HeaderFileList;

есть массив строки вида:

char *str = "123456789";

как можно скопировать строку str в структуру в поле name ?


Ответы (1 шт):

Автор решения: EOF

Используйте strncpy:

const char* str = "123456789";
HeaderFile obj;

// Скопировать в obj.name не более 20 символов из строки str
strncpy(obj.name, str, 20);

// Установить последний элемент массива нулевым символом, на случай если в str больше 19 символов
obj.name[19] = '\0';
→ Ссылка