在C++中,可以使用std::string
類的成員函數substr
和find
來切分字符串。下面是一個簡單的示例,展示了如何根據指定的分隔符來切分字符串:
#include<iostream>
#include<vector>
#include<string>
std::vector<std::string> split(const std::string& input, char delimiter) {
std::vector<std::string> result;
std::size_t startPos = 0;
std::size_t endPos = input.find(delimiter);
while (endPos != std::string::npos) {
result.push_back(input.substr(startPos, endPos - startPos));
startPos = endPos + 1;
endPos = input.find(delimiter, startPos);
}
result.push_back(input.substr(startPos));
return result;
}
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::vector<std::string>
對象來存儲切分后的子字符串。然后,它使用find
函數查找分隔符在輸入字符串中的位置,并使用substr
函數從輸入字符串中提取子字符串。最后,將提取到的子字符串添加到結果向量中。當find
函數返回std::string::npos
時,表示已經找不到更多的分隔符,此時函數將剩余的子字符串添加到結果向量中并返回。
在main
函數中,我們調用split
函數來切分一個包含逗號分隔的字符串,并將結果打印到控制臺。