C++標準庫中沒有提供內置的split函數,但可以使用一些其他方法來實現類似的功能。以下是一種常見的實現方法:
#include <iostream>
#include <sstream>
#include <vector>
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> result = split(str, ',');
for (const auto& s : result) {
std::cout << s << std::endl;
}
return 0;
}
在上述代碼中,我們定義了一個split函數,該函數接受一個字符串和一個分隔符作為參數,并返回一個存儲了被分割后的子字符串的vector。我們使用istringstream來將輸入字符串拆分為子字符串,并使用getline函數從istringstream中讀取每個子字符串。每次讀取到分隔符時,將子字符串添加到tokens vector中。最后,我們在主函數中調用split函數,并打印分割后的子字符串。