string类型根据分隔符分割
时间: 2024-06-15 07:03:31 浏览: 113
字符串分隔
4星 · 用户满意度95%
在C++中,可以使用string类型的成员函数和标准库函数来根据分隔符分割字符串。以下是两种常用的方法:
1. 使用成员函数find和substr:
首先,使用find函数找到第一个分隔符的位置,然后使用substr函数截取从起始位置到分隔符位置的子字符串。重复这个过程直到找不到分隔符为止。下面是一个示例代码:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str = "CSDN,是,一个,技术社区";
std::string delimiter = ",";
size_t pos = 0;
std::string token;
while ((pos = str.find(delimiter)) != std::string::npos) {
token = str.substr(0, pos);
std::cout << token << std::endl;
str.erase(0, pos + delimiter.length());
}
std::cout << str << std::endl;
return 0;
}
```
输出结果为:
```
CSDN
是
一个
技术社区
```
2. 使用标准库函数strtok:
strtok函数是C语言中的字符串分割函数,可以用于分割C++的string类型。需要注意的是,strtok函数会修改原始字符串,所以需要将string类型转换为C风格的字符串(使用c_str()函数)。下面是一个示例代码:
```cpp
#include <iostream>
#include <cstring>
int main() {
std::string str = "CSDN,是,一个,技术社区";
char* cstr = new char[str.length() + 1];
std::strcpy(cstr, str.c_str());
char* token = std::strtok(cstr, ",");
while (token != nullptr) {
std::cout << token << std::endl;
token = std::strtok(nullptr, ",");
}
delete[] cstr;
return 0;
}
```
输出结果同样为:
```
CSDN
是
一个
技术社区
```
阅读全文