std::string分割
时间: 2023-11-14 10:07:21 浏览: 92
std::string分割是将一个字符串分割成多个子串的操作。在C++中,可以通过使用std::stringstream或者使用循环遍历字符串来实现分割。以下是两种常用的分割方法:
方法1:使用std::stringstream
可以使用std::stringstream将字符串转换为流,并使用getline()函数从流中逐行提取子串。首先,将待分割的字符串放入std::stringstream中,然后使用getline()函数从流中逐行读取子串,并将其存储在一个容器中。
示例代码如下:
```cpp
std::string str = "Hello,World,This,is,a,string";
std::stringstream ss(str);
std::string token;
std::vector<std::string> tokens;
while (getline(ss, token, ',')) {
tokens.push_back(token);
}
```
以上代码将字符串"Hello,World,This,is,a,string"按照逗号分割成多个子串,并将子串存储在名为tokens的std::vector容器中。
方法2:使用循环遍历字符串
可以使用循环遍历字符串的方式,逐个字符查找分割符号,并将分割符号前的子串存储在一个容器中。
示例代码如下:
```cpp
std::string str = "Hello,World,This,is,a,string";
std::string delimiter = ",";
std::vector<std::string> tokens;
size_t pos = 0;
size_t prev = 0;
while ((pos = str.find(delimiter, prev)) != std::string::npos) {
std::string token = str.substr(prev, pos - prev);
tokens.push_back(token);
prev = pos + 1;
}
// 处理最后一个子串
std::string token = str.substr(prev);
tokens.push_back(token);
```
以上代码将字符串"Hello,World,This,is,a,string"按照逗号分割成多个子串,并将子串存储在名为tokens的std::vector容器中。
这是std::string分割的两种常用方法,你可以根据具体的需求选择合适的方法进行分割。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [C++字符串操作案例(字符串拼接、替换、分割、类型转换、截取)](https://blog.csdn.net/a486259/article/details/124966131)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文