C++ string split()
时间: 2023-07-08 07:42:12 浏览: 187
C++ 中没有内置的字符串分割函数,但可以通过使用标准库中的 `std::stringstream` 或者使用 `std::string::find()` 和 `std::string::substr()` 等方法来实现字符串分割。
下面是使用 `std::stringstream` 的示例代码:
```c++
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
std::vector<std::string> split(const std::string& s, char delimiter) {
std::vector<std::string> tokens;
std::stringstream ss(s);
std::string token;
while (std::getline(ss, token, delimiter)) {
tokens.push_back(token);
}
return tokens;
}
int main() {
std::string text = "Hello world!";
std::vector<std::string> words = split(text, ' ');
for (const auto& word : words) {
std::cout << word << std::endl;
}
return 0;
}
```
输出结果为:
```
Hello
world!
```
在这个例子中,我们首先定义了一个名为 `split()` 的函数,该函数接受一个字符串和一个分隔符作为参数,返回一个由分割后的子字符串组成的字符串向量。在函数内部,我们使用 `std::stringstream` 将输入字符串按照分隔符进行分割,并将分割后的子字符串存储到一个字符串向量中。
需要注意的是,`std::getline()` 函数是以换行符作为默认的分隔符,因此在使用 `std::stringstream` 进行字符串分割时需要指定分隔符。
阅读全文