std::string根据@字符分割成2个数组
时间: 2024-12-12 16:24:09 浏览: 7
在C++中,`std::string`是一个字符串容器,如果你想要根据特定字符(例如 '@')将其分割成两个数组,你可以使用`std::split`函数,该函数来自 `<algorithm>` 库。下面是一个简单的示例:
```cpp
#include <iostream>
#include <sstream>
#include <vector>
#include <algorithm>
std::vector<std::string> splitString(const std::string &input, char delimiter) {
std::istringstream iss(input);
std::vector<std::string> tokens;
std::string token;
while (iss >> token) {
if (!token.empty()) { // 检查是否还有内容
tokens.push_back(token); // 存储非空的令牌
}
}
if (tokens.size() > 0 && tokens.back().find(delimiter) != std::string::npos) {
// 如果最后一个令牌包含分隔符,那么分割它并添加到结果中
size_t pos = tokens.back().find(delimiter);
tokens.pop_back();
tokens.push_back(tokens.back().substr(0, pos));
tokens.back() = tokens.back().substr(pos + 1);
}
return tokens;
}
int main() {
std::string str = "example@example.com";
std::vector<std::string> parts = splitString(str, '@');
for (const auto& part : parts) {
std::cout << part << std::endl;
}
return 0;
}
```
这个程序会把输入字符串如 "example@example.com" 分割成两部分:`"example"` 和 `"example.com"`。
阅读全文