środa, 21 marca 2018

00035 - 617 - StringMerge - www.pl.spoj.com

Treść zadania:

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