Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Funkcja zwracająca tablicę string.


Agent K

Rekomendowane odpowiedzi

Opublikowano

Witam,

mam z tym problem i nie wiem jak to zrobić, żeby funkcja zwracała całą tablicę:

 

string strSplit(string tekst, string dzielnik)
{
    int pozycja = 0;
    int dzielnikNum = strNum(tekst, dzielnik) + 1;
    if(strLeft(tekst, dzielnik.size())==dzielnik)
       dzielnikNum--;
    if(strRight(tekst, dzielnik.size())==dzielnik)
       dzielnikNum--;
    string strTablica[dzielnikNum];
    for(int i = 0; i < dzielnikNum; i++)
    {
        if(i==dzielnikNum-1)
        {
            strTablica[i] = tekst;
            break;
        }
        pozycja = tekst.find(dzielnik);
        if(pozycja==0)
        {
            tekst.erase(0, dzielnik.size());
            pozycja = tekst.find(dzielnik);
        }
        strTablica[i] = strLeft(tekst, pozycja);
        tekst.erase(0, pozycja+dzielnik.size());
    }

    for(int i = 0; i<dzielnikNum; i++)
    {
        cout << strTablica[i] << endl;
    }
return strTablica;
}

Dziękuję osobie, która mi to dokładnie wytłumaczy, czytałem o wskaźnikach ale nie rozumiem tego.

4417049059_6234f40fb5.jpg
Storm has passed but the destruction are still visible.

Opublikowano

Dziękuję, już wszystko w porządku.

vector <string> strSplit(string tekst, string dzielnik)
{
    int pozycja = 0;
    int dzielnikNum = strNum(tekst, dzielnik) + 1;
    if(strLeft(tekst, dzielnik.size())==dzielnik)
       dzielnikNum--;
    if(strRight(tekst, dzielnik.size())==dzielnik)
       dzielnikNum--;
    vector <string> strTablica;
    for(int i = 0; i < dzielnikNum; i++)
    {
        if(i==dzielnikNum-1)
        {
            strTablica.insert(strTablica.end(), tekst);
            break;
        }
        pozycja = tekst.find(dzielnik);
        if(pozycja==0)
        {
            tekst.erase(0, dzielnik.size());
            pozycja = tekst.find(dzielnik);
        }
        strTablica.insert(strTablica.end(), strLeft(tekst, pozycja));
        tekst.erase(0, pozycja+dzielnik.size());
    }
return strTablica;
}

4417049059_6234f40fb5.jpg
Storm has passed but the destruction are still visible.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...