stringstream划分字符串
时间: 2023-09-30 14:05:17 浏览: 78
你可以使用`std::stringstream`来划分字符串。下面是一个示例代码:
```cpp
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
int main() {
std::string input = "Hello,world,this,is,a,test";
std::stringstream ss(input);
std::vector<std::string> tokens;
std::string token;
while (std::getline(ss, token, ',')) {
tokens.push_back(token);
}
for (auto& t : tokens) {
std::cout << t << std::endl;
}
return 0;
}
```
这个示例将以逗号作为分隔符,将输入字符串分割成多个子字符串,并将它们存储在`tokens`向量中。然后,用循环打印出这些子字符串。你可以根据自己的需求修改分隔符和输入字符串。
希望这可以帮助到你!如果你有任何其他问题,请随时提问。
相关问题
C++将字符串按指定字符划分
你可以使用C++的字符串流(stringstream)来实现字符串按指定字符划分的功能。以下是一个示例代码:
```cpp
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
using namespace std;
vector<string> splitString(const string& str, char delimiter) {
vector<string> tokens;
stringstream ss(str);
string token;
while (getline(ss, token, delimiter)) {
tokens.push_back(token);
}
return tokens;
}
int main() {
string input = "Hello,world,how,are,you";
char delimiter = ',';
vector<string> tokens = splitString(input, delimiter);
for (auto token : tokens) {
cout << token << endl;
}
return 0;
}
```
在上述示例代码中,我们定义了一个名为 `splitString` 的函数,它接受两个参数:一个字符串和一个字符作为分隔符。函数将字符串按照分隔符划分为多个子串,并将这些子串存储在一个字符串向量(vector)中并返回。
在 `main` 函数中,我们声明了一个输入字符串 `input` 和一个分隔符 `delimiter`。我们将输入字符串和分隔符传递给 `splitString` 函数,并将返回的字符串向量存储在 `tokens` 变量中。最后,我们使用一个简单的循环遍历 `tokens` 并打印出每个子串。
C++将字符串按\t进行划分
可以使用stringstream和getline函数来实现字符串按\t进行划分:
```cpp
#include <iostream>
#include <sstream>
#include <string>
int main()
{
std::string str = "hello\tworld\t!";
std::istringstream iss(str);
std::string token;
while (std::getline(iss, token, '\t'))
{
std::cout << token << std::endl;
}
return 0;
}
```
这里,我们首先将字符串 `str` 传递给 `istringstream` 对象 `iss`,并使用 `getline` 函数按照 `\t` 为分隔符将字符串划分成多个子字符串。每次调用 `getline` 函数时,它会返回当前子字符串,并将 `iss` 对象的指针移动到下一个子字符串的位置。最后,我们可以通过循环输出所有子字符串。
阅读全文