簡體   English   中英

如何在C ++中拆分數組?

[英]how do you split an array in c++?

我試圖做一個簡單的字符串拆分功能,但是我在返回拆分字符串時遇到問題。

我把字符串分成字符串s1,s2,s3。 如何返回{s1,s2,s3} 即時通訊使用方括號,但編譯器告訴我

expected primary-expression before '{' token 
expected `;' before '{' token 
expected `;' before '}' token 

即使似乎沒有任何問題。 是否正在做{s1,s2,s3}

您應該填充一個std::vector並返回它。

std::vector<std::string> tokenize(/*...*/)
{
    std::vector<std::string> result;

    // ...
    result.push_back(s); // s: s1 - s3
    // ...

    return result;
}

請注意,您實際上不應該具有變量s1s2s3 ,或者只是將過程限制為三個輸出。 您應該在字符串中循環,將結果推入向量。

不。 您必須將字符串放在適當的容器中,該容器將由函數返回。 您可以使用例如std::vector<std::string>

std::vector<std::string> YourFunction(/* ... */)
{
    std::vector<std::string> ret;
    // ...
    ret.push_back(s); // you should call this for each string
    // ...
    return ret;
}

多虧了RVO,它不應該看起來那么重。

那根本不是一個有效的語法。 如果您使用的是C ++ 0x,則可以返回std::make_tuple(s1, s2, s3) ,或者(更明智的是)返回std::vector<std::string>

您可能想返回類型vector<string> 然后在函數中創建一個向量,並將其作為值返回。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM