c++ 分割字符串 ,string val="d1/d2/K1"; 分割符号"/", 分割出来的元素 加入vector 返回vector<string> vStr,写出完整过程
时间: 2024-04-12 09:31:22 浏览: 98
在 C++ 中,你可以使用字符串流 `std::stringstream` 和 `std::getline` 函数来分割字符串。下面是一个完整的代码示例:
```cpp
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
std::vector<std::string> splitString(const std::string& str, char delimiter) {
std::vector<std::string> result;
std::stringstream ss(str); // 使用字符串流读取字符串
std::string item;
while (std::getline(ss, item, delimiter)) { // 使用 getline 函数分割字符串
result.push_back(item);
}
return result;
}
int main() {
std::string val = "d1/d2/K1";
char delimiter = '/';
std::vector<std::string> vStr = splitString(val, delimiter);
// 打印分割后的结果
for (const auto& str : vStr) {
std::cout << str << std::endl;
}
return 0;
}
```
在上述代码中,我们定义了一个函数 `splitString`,该函数接受一个字符串 `str` 和一个分割符号 `delimiter`,并返回一个 `std::vector<std::string>` 类型的结果。在函数中,我们使用字符串流 `std::stringstream` 来读取字符串 `str`,然后使用 `std::getline` 函数以 `delimiter` 作为分割符号来分割字符串,并将分割后的子串依次添加到结果向量 `result` 中。
在 `main` 函数中,我们定义了一个示例字符串 `val` 和分割符号 `/`,然后调用 `splitString` 函数进行分割,并将结果存储在向量 `vStr` 中。最后,我们遍历打印 `vStr` 中的每个元素。
运行上述代码,输出将是:
```
d1
d2
K1
```
这表示字符串 "d1/d2/K1" 被成功地分割成了三个子串,并存储在向量 `vStr` 中。
阅读全文