c++,字符串用都好分割,记录总共多个元素
时间: 2024-10-22 19:25:39 浏览: 14
在C++中,可以使用`std::string`以及一些内置的库函数来进行字符串分割,常见的有以下几种方法:
1. **使用`std::getline()`**:如果是以空格、制表符或其他特定分隔符分割,可以逐行读取并存储到容器中,例如`std::vector<std::string>`。
```cpp
#include <iostream>
#include <sstream>
#include <vector>
std::vector<std::string> splitString(const std::string& str, char delimiter) {
std::istringstream iss(str);
std::vector<std::string> tokens;
std::string token;
while (iss >> token) {
tokens.push_back(token);
}
return tokens;
}
int main() {
std::string input = "这是一个;包含;多个;元素的字符串";
std::vector<std::string> elements = splitString(input, ';');
int count = elements.size();
std::cout << "Total elements: " << count << std::endl;
return 0;
}
```
2. **使用`boost::split()`** 或者 C++17后引入的`std::string_view` 和 `std::ranges`,它们提供更高级别的分词功能,如`std::ranges::view_split`。
3. **自定义分隔符正则表达式**:对于复杂的分隔规则,可以使用`std::regex`配合`std::sregex_token_iterator`。
无论哪种方法,关键都是将原始字符串按照指定的分隔符拆分成一个个独立的部分,并记录元素总数。上述示例中的`count`变量就是用来存储总元素数的。
阅读全文