strtok_r
是一個 C 語言庫函數,用于將字符串分割成一系列的標記
#include<iostream>
#include<string>
#include<vector>
std::vector<std::string> split(const std::string& str, char delimiter) {
std::vector<std::string> tokens;
std::size_t start = 0;
std::size_t end = str.find(delimiter);
while (end != std::string::npos) {
tokens.push_back(str.substr(start, end - start));
start = end + 1;
end = str.find(delimiter, start);
}
tokens.push_back(str.substr(start, end));
return tokens;
}
int main() {
std::string input = "Hello,World,This,Is,A,Test";
char delimiter = ',';
std::vector<std::string> tokens = split(input, delimiter);
for (const auto& token : tokens) {
std::cout<< token<< std::endl;
}
return 0;
}
這個示例中的 split
函數接受一個字符串和一個分隔符作為參數。它使用 std::string::find
方法查找分隔符在字符串中的位置,并將找到的子字符串添加到 tokens
向量中。最后,它返回包含所有子字符串的向量。
在 main
函數中,我們使用逗號作為分隔符將輸入字符串分割成多個子字符串,并將結果打印到控制臺。