簡體   English   中英

在 C++ 中使用多個分隔符(包括分隔符)拆分字符串

[英]split a string using multiple delimiters (including delimiters) in c++

我有一個字符串,我輸入如下

using namespace std;

string s;
getline(cin, s);

我輸入

ab~cd

我想在. ~但也想存儲分隔符。 拆分的元素將存儲在一個向量中。

最終輸出應如下所示

a
.
b
~
c
.
d

我在這里看到了一個解決方案但它是在 Java 中的。

我如何在 C++ 中實現這一點?

除了注釋行外,此解決方案是從這個答案中逐字復制的:

std::stringstream stringStream(inputString);
std::string line;
while(std::getline(stringStream, line)) 
{
    std::size_t prev = 0, pos;
    while ((pos = line.find_first_of(".~", prev)) != std::string::npos)  // only look for . and ~
    {
        if (pos > prev)
            wordVector.push_back(line.substr(prev, pos-prev));
        wordVector.push_back(line.substr(pos, 1));               // add delimiter 
        prev = pos+1;
    }
    if (prev < line.length())
        wordVector.push_back(line.substr(prev, std::string::npos));
}

我還沒有測試過代碼,但基本的想法是你也想在結果中存儲分隔符。

暫無
暫無

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

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