Это должно быть близко к тому, что вы ищете, строго используя strcpy_s
для объединения строк:
#include <string.h>
#include <iostream>
using namespace std;
int main()
{
char str_first[] = "Nerf_";
char str_middle[] = " Herder";
char str_last[] = "42";
char str_fullName[35];
int index = strcpy_s(str_fullName, sizeof str_fullName, str_first);
index += strcpy_s(str_fullName + index, sizeof str_fullName - index, str_middle);
index += strcpy_s(str_fullName + index, sizeof str_fullName - index, str_last);
cout << str_fullName;
}
Переменная index
служит нескольким целям : (1) для предоставления нового индекса в выходной строке str_fullName
при построении строки и (2) вычитание из sizeof str_fullName
, он «регулирует» доступный размер буфера при построении строки.
Предостережения в том, что вы должны добавить проверку переполнения через вывод из strcpy_s
, и (как отметили другие) есть лучшие шаблоны для этого, но, вероятно, в качестве академического c упражнения здесь есть чему поучиться.