Я сделал ваш код работающим с небольшими изменениями:
#include<iostream>
using namespace std;
void string_cat(char *s1, char*s2)
{
char s3[200]; int i = 0, j = 0;
for (i=0; s1[i] != '\0'; i++){
s3[i] = s1[i];
}
while (s2[j] != '\0')
{
s3[i++] = s2[j++];
}
s3[i] = '\0';
cout << s3 << endl;
}
int main()
{
char str1[5] = "abcd";
char str2[5] = "efgh";
string_cat(str1, str2);
}
Вы должны написать: s3[i] = '\0';
Скомпилировать:
$ g++ StringMerge.cpp -o StringMerge.o
Запустить:
$ ./StringMerge.o
abcdefgh