Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

PP0504B - StringMerge

Ostatnio zmodyfikowano 2016-05-11 20:24
Autor Wiadomość
carlosmay
» 2016-05-11 20:11:51
Napisy są podawanie w jednej Lini getline odpada!!!
w stylu :
aaa bb
Dlaczego?

C/C++
std::getline( std::cin, tablica, ' ' )
P-148130
ja4563
Temat założony przez niniejszego użytkownika
» 2016-05-11 20:14:15
Skoro odpada, dlaczego u mnie działa?
Kompiluję w gcc.
P-148131
carlosmay
» 2016-05-11 20:16:43
char * napis = new char[ T_SIZE ];
 - na to zwróć uwagę.
Wtedy sens ma
delete[] S;

Edit: Dwa łańcuchy oddzielone spacją wczytuj operatorem strumienia lub getlinem z trzecim parametrem.
P-148132
mateczek
» 2016-05-11 20:19:21
założyłem, że getline pobiera całą linijkę. Więc źle testowałem kod. Dopiero później luknąłem na spoja do oryginalnej treści


poniżej dwa kody które przechodzą test na spoju

C/C++
#include <iostream>
#include <cstring>
using namespace std;
const int T_SIZE = 1001;

char * string_merge( char * S1, char * S2 )
{
    char * napis = new char[ T_SIZE ];
    int licz = 0;
    int i = 0;
    while( S1[ licz ] != '\0' && S2[ licz ] != '\0' )
    {
        napis[ i ] = S1[ licz ];
        napis[ i + 1 ] = S2[ licz ];
        i = i + 2;
        licz++;
    }
    napis[ i ] = '\0';
    return napis;
}


int main()
{
    int t;
    char S1[ T_SIZE ], S2[ T_SIZE ], * S;
    cin >> t; /* wczytaj liczbê testów */
    while( t )
    {
        cin.ignore();
        cin >> S1 >> S2;
        S = string_merge( S1, S2 );
        cout << S << endl;
        delete[] S;
        t--;
    }
    return 0;
}

i drugi

C/C++
#include <string>
#include <iostream>
using namespace std;

int main() {
    int liczbaTestow;
    string S1, S2, S3;
    int rozmiarS3;
    cin >> liczbaTestow;
    while( liczbaTestow-- ) {
        cin >> S1;
        cin >> S2;
        S3.clear();
        rozmiarS3 =( S1.size() >= S2.size() ) ? S2.size()
            : S1.size();
        for( int i = 0; i < rozmiarS3; i++ ) {
            S3 += S1[ i ];
            S3 += S2[ i ];
        }
        cout << S3 << endl;
    }
}
P-148133
ja4563
Temat założony przez niniejszego użytkownika
» 2016-05-11 20:20:19
Masz na myśli
char * S = new char[ T_SIZE ];
?
P-148134
ja4563
Temat założony przez niniejszego użytkownika
» 2016-05-11 20:24:47
@mateczek - wygląda więc na to, że dobrze wyczułeś, że chodzi o getline'a.
Zwykłym cinem rzeczywiście wchodzi. Robiłem to w ten sposób, ponieważ taka była sugestia na stronie.
Najlepsze jest to, że poprzedni sposób również działa dla wszelkich testów, ale jak wiadomo sędzia miewa humory.
Dzięki w takim razie. :)
P-148135
1 « 2 »
Poprzednia strona Strona 2 z 2