В перенесенной библиотеке C есть функция strcat () , которая выполнит за вас конкатенацию "строки в стиле C".
Кстати, хотя в C ++ есть множество функций для работы со строками в стиле C, это может быть полезно, если вы попытаетесь создать свою собственную функцию, которая делает это, например:
char * con(const char * first, const char * second) {
int l1 = 0, l2 = 0;
const char * f = first, * l = second;
// step 1 - find lengths (you can also use strlen)
while (*f++) ++l1;
while (*l++) ++l2;
char *result = new char[l1 + l2];
// then concatenate
for (int i = 0; i < l1; i++) result[i] = first[i];
for (int i = l1; i < l1 + l2; i++) result[i] = second[i - l1];
// finally, "cap" result with terminating null char
result[l1+l2] = '\0';
return result;
}
...а потом...
char s1[] = "file_name";
char *c = con(s1, ".txt");
... результат чего есть file_name.txt.
У вас также может возникнуть соблазн написать свой собственный, operator +однако оператор IIRC перегружается только указателями, поскольку аргументы не разрешены.
Кроме того, не забывайте, что результат в этом случае распределяется динамически, поэтому вы можете вызвать для него delete, чтобы избежать утечек памяти, или вы можете изменить функцию, чтобы использовать массив символов, выделенный стеком, при условии, конечно, что он имеет достаточную длину.