#include
#include
using namespace std;
#define T_SIZE 1001
char* string_merge(char*, char*);
int main() {
int t;
char S1[T_SIZE], S2[T_SIZE], * S;
cin >> t; /* wczytaj liczbę testów */
while (t) {
cin >> S1 >> S2;
S = string_merge(S1, S2);
cout << S << endl;
delete[] S;
t--;
}
return 0;
}
char* string_merge(char* a, char* b)
{
char pocz[T_SIZE];
int l_a = 0, l_b = 0, n, j = 0;
// odtąd sprawdzam ktory ciag znakow jest krotszy
while (a[j])
{
l_a++;
j++;
}
while (b[j])
{
l_b++;
j++;
}
if (l_a < l_b)
{
n = l_a;
}
else
{
n = l_b;
}
// w petli wpisuje na przemian po znaku do nowej tabeli
int k = 0;
for (int i = 0; i < n; i++)
{
pocz[k] = *(a++);
pocz[k + 1] = *(b++);
k += 2;
}
return pocz;
}
Problem polega na tym ze program po skompilowaniu crashuje się, zwraca randomowe wartości w postaci ciągu ‘znaczków’.