c++ 按,分割字符串
时间: 2023-08-11 14:44:50 浏览: 115
在 C++ 中,可以使用 stringstream 和 getline 函数来按照指定分隔符分割字符串。
示例代码:
```c++
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main() {
string str = "hello,world,how,are,you";
stringstream ss(str);
string token;
while (getline(ss, token, ',')) {
cout << token << endl;
}
return 0;
}
```
输出结果:
```
hello
world
how
are
you
```
在上面的代码中,我们先将字符串 str 转化为 stringstream 类型的对象 ss,然后使用 getline 函数按照逗号分隔符分割字符串,并将分割后的子串存储在字符串变量 token 中。最后循环输出每个子串即可。
相关问题
c++逗号分割字符串
在C++中,可以使用stringstream和getline函数来逗号分割字符串。以下是示例代码:
```c++
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
using namespace std;
int main() {
string str = "apple,banana,orange,grape";
vector<string> tokens;
stringstream ss(str);
string token;
while (getline(ss, token, ',')) {
tokens.push_back(token);
}
for (auto t : tokens) {
cout << t << endl;
}
return 0;
}
```
在这里,我们首先将字符串"apple,banana,orange,grape"存储在一个名为str的字符串变量中。然后,我们创建一个名为tokens的字符串向量来存储逗号分割后的单词。接下来,我们使用stringstream将字符串转换为输入流,并使用getline函数从输入流中读取单词,并使用逗号作为分隔符。最后,我们使用for循环遍历tokens向量并打印每个单词。
c++ string 分割字符串
以下是两种C++中分割字符串的方法:
1. 使用stringstream和getline函数
```cpp
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
std::vector<std::string> splitString(std::string str, char delimiter) {
std::vector<std::string> result;
std::stringstream ss(str);
std::string token;
while (getline(ss, token, delimiter)) {
result.push_back(token);
}
return result;
}
int main() {
std::string str = "This is a test";
std::vector<std::string> strList = splitString(str, ' ');
for (auto s : strList) {
std::cout << s << " ";
}
std::cout << std::endl;
return 0;
}
```
2. 使用find和substr方法
```cpp
#include <iostream>
#include <string>
#include <vector>
std::vector<std::string> splitString(std::string str, char delimiter) {
std::vector<std::string> result;
size_t start = 0;
size_t end = str.find(delimiter);
while (end != std::string::npos) {
result.push_back(str.substr(start, end - start));
start = end + 1;
end = str.find(delimiter, start);
}
result.push_back(str.substr(start, end));
return result;
}
int main() {
std::string str = "This-is-a-test";
std::vector<std::string> strList = splitString(str, '-');
for (auto s : strList) {
std::cout << s << " ";
}
std::cout << std::endl;
return 0;
}
```
阅读全文