c++分割字符串的方法
时间: 2024-03-14 09:48:02 浏览: 221
在 C++ 中,可以使用以下方法来分割字符串:
1. 使用 `stringstream`:
```c++
#include <string>
#include <sstream>
#include <vector>
vector<string> split(string str, char delimiter) {
vector<string> res;
stringstream ss(str);
string token;
while (getline(ss, token, delimiter)) {
res.push_back(token);
}
return res;
}
```
该方法使用了 `stringstream` 类,将字符串按照指定的分隔符进行拆分,并将拆分后的结果存储在 `vector` 中。
2. 使用 `string` 的 `find` 和 `substr` 方法:
```c++
#include <string>
#include <vector>
vector<string> split(string str, char delimiter) {
vector<string> res;
int start = 0;
int end = str.find(delimiter);
while (end != string::npos) {
res.push_back(str.substr(start, end - start));
start = end + 1;
end = str.find(delimiter, start);
}
res.push_back(str.substr(start, end - start));
return res;
}
```
该方法使用了 `string` 的 `find` 和 `substr` 方法,从字符串的开头开始查找分隔符,将分隔符前的子串添加到 `vector` 中,然后从分隔符处继续查找下一个分隔符,直到字符串结束。
以上是两种常见的方法,其中第一种方法使用了 `stringstream` 类,代码较短,但可能会比第二种方法略慢一些。第二种方法不需要使用额外的头文件,代码可读性较好,但需要注意处理最后一个子串的情况。
阅读全文