溫馨提示×

c++中string split的用法是什么

小億
238
2024-02-01 14:30:40
欄目: 編程語言

C++中沒有內(nèi)置的string split函數(shù),但可以自定義實現(xiàn)一個split函數(shù)來分割字符串。以下是一個簡單的示例代碼:

#include <iostream>
#include <string>
#include <vector>
#include <sstream>

std::vector<std::string> split(const std::string& str, char delimiter) {
    std::vector<std::string> tokens;
    std::stringstream ss(str);
    std::string token;
    while (std::getline(ss, token, delimiter)) {
        tokens.push_back(token);
    }
    return tokens;
}

int main() {
    std::string str = "Hello,World,How,Are,You";
    std::vector<std::string> tokens = split(str, ',');
    for (const std::string& token : tokens) {
        std::cout << token << std::endl;
    }
    return 0;
}

在上述示例代碼中,split函數(shù)接受一個字符串和一個分隔符作為參數(shù),將字符串按照分隔符進行分割,并返回一個存儲分割結(jié)果的字符串向量。

首先,使用std::stringstream將輸入字符串str轉(zhuǎn)換為流對象ss。然后,使用std::getline函數(shù)從ss中逐行讀取token,將其加入到tokens向量中。

最后,在main函數(shù)中,將字符串"Hello,World,How,Are,You"傳遞給split函數(shù),分隔符為’,'。然后,使用循環(huán)遍歷tokens向量中的分割結(jié)果,并打印每個分割結(jié)果。

運行上述代碼的輸出結(jié)果將是:

Hello
World
How
Are
You

0