如何把一个字符串拆分c++
时间: 2024-10-02 12:02:48 浏览: 36
在C++中,你可以使用`std::string`类提供的`substr()`、`find()`以及`getline()`等函数来将一个字符串拆分成多个部分。以下是几种常见的拆分方法:
1. **使用`substr()`和空格**:
如果字符串是以空格分隔的,可以使用`substr()`创建新字符串,直到遇到下一个空格为止。
```cpp
#include <iostream>
#include <string>
using namespace std;
vector<string> splitString(string str) {
vector<string> parts;
size_t start = 0, end;
while ((end = str.find(' ')) != string::npos) {
parts.push_back(str.substr(start, end - start));
start = end + 1; // move the start index to after the space
}
parts.push_back(str.substr(start)); // Add last part if it's not empty
return parts;
}
int main() {
string input = "Hello World C++";
vector<string> result = splitString(input);
for (const auto &part : result) {
cout << part << endl;
}
return 0;
}
```
2. **使用`getline()`**:
`getline()`从流中读取一行文本,并将其存储到一个字符串中。如果字符串是以换行符`\n`或其他特定字符分隔的,可以逐行处理。
```cpp
#include <iostream>
#include <sstream>
using namespace std;
vector<string> splitStringByNewline(const string &str) {
vector<string> parts;
stringstream ss(str);
string line;
while (getline(ss, line, '\n')) { // or any other delimiter like '\t'
parts.push_back(line);
}
return parts;
}
int main() {
string input = "Line1\nLine2\nLine3";
vector<string> result = splitStringByNewline(input);
for (const auto &part : result) {
cout << part << endl;
}
return 0;
}
```
阅读全文