Napisz funkcję:
char* string_merge(char *, char *);
która sklei ze sobą dwa łańcuchy biorąc na przemian po jednym znaku z każdego łańcucha i umieści w nowej dynamicznie alokowanej tablicy znaków, do której zwróci wskaźnik. Należy wziąć po tyle znaków ile jest w krótszym łańcuchu.
Input
W pierwszej linii liczba testów t, w kolejnych liniach po dwa łańcuchy znaków odzielone spacją.
Output
W każdej linii jeden łańcuch, wynik działania funkcji string_merge.
Example
Input:
4
a bb
abs sfd
ewr w
wqeqweqweq eqweqwe
Output:
ab
asbfsd
ew
weqqewqewqewqe
Kod źródłowy w C++:
#include <iostream> #include <cstring> #define T_SIZE 1001 using namespace std; char* string_merge(char *a, char *b) { int i, c; i=0; c=0; char *s = new char [10000]; while(a[i] != '\0' && b[i] != '\0') { s[c]=a[i]; ++c; s[c]=b[i]; ++c; ++i; } s[c]='\0'; return s; }; int main() { int t, n; char S1[T_SIZE], S2[T_SIZE], *S; cin >> t; /* wczytaj liczbę testów */ cin.getline(S1,T_SIZE); while(t) { cin.getline(S1,T_SIZE,' '); cin.getline(S2,T_SIZE); S=string_merge(S1,S2); cout << S << endl; delete[] S; t--; } return 0; }
Źródło: http://pl.spoj.com/problems/PP0504B/
Brak komentarzy:
Prześlij komentarz