C++根据字符分割字符串
时间: 2024-02-24 10:26:00 浏览: 83
你可以使用C语言中的字符串处理函数(string.h库)中的strtok函数来实现根据字符分割字符串。例如,如果你想根据空格分割字符串,可以使用以下代码:
```
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello World! It's a beautiful day.";
char* token = strtok(str, " ");
while (token != NULL) {
printf("%s\n", token);
token = strtok(NULL, " ");
}
return 0;
}
```
这个程序会把字符串str按照空格分割成若干个子串,并逐个输出它们。strtok函数的第一个参数为要分割的字符串,第二个参数为分割符号。在第一次调用strtok时,它会返回分割出的第一个子串,并把分割符号后面的部分替换成'\0',以方便后续处理。当再次调用strtok时,它会在上一次分割的位置继续分割,直到分割完整个字符串。
相关问题
c++字符串根据字符分割
可以使用C++的STL库中的stringstream和getline函数来实现字符串根据字符分割的功能。具体实现如下:
```c++
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
int main() {
std::string str = "This is a sample string.";
std::vector<std::string> tokens;
// 使用stringstream分割字符串
std::stringstream ss(str);
std::string token;
char delimiter = ' '; // 分割符为空格
while (std::getline(ss, token, delimiter)) {
tokens.push_back(token);
}
// 输出分割后的结果
for (const auto& t : tokens) {
std::cout << t << std::endl;
}
return 0;
}
```
代码中首先定义了一个字符串和一个字符串向量,然后使用stringstream将字符串按照指定的分割符进行分割,并将分割后的子字符串存储到向量中。最后遍历向量输出分割后的结果。
c++字符串分割字符串
在C++中,可以使用多种方法来分割字符串。以下是其中几种常见的方法:
1. 使用stringstream:
```cpp
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
int main() {
std::string str = "hello,world,this,is,a,test";
std::vector<std::string> tokens;
std::stringstream ss(str);
std::string token;
while (std::getline(ss, token, ',')) {
tokens.push_back(token);
}
for (const auto& t : tokens) {
std::cout << t << std::endl;
}
return 0;
}
```
2. 使用C++标准库的字符串处理函数:
```cpp
#include <iostream>
#include <string>
#include <vector>
int main() {
std::string str = "hello,world,this,is,a,test";
std::vector<std::string> tokens;
size_t pos = 0;
std::string token;
while ((pos = str.find(',')) != std::string::npos) {
token = str.substr(0, pos);
tokens.push_back(token);
str.erase(0, pos + 1);
}
tokens.push_back(str); // 添加最后一个分割后的子串
for (const auto& t : tokens) {
std::cout << t << std::endl;
}
return 0;
}
```
3. 使用Boost库中的字符串分割函数:
```cpp
#include <iostream>
#include <string>
#include <vector>
#include <boost/algorithm/string.hpp>
int main() {
std::string str = "hello,world,this,is,a,test";
std::vector<std::string> tokens;
boost::split(tokens, str, boost::is_any_of(","));
for (const auto& t : tokens) {
std::cout << t << std::endl;
}
return 0;
}
```
以上是几种常见的字符串分割方法,你可以根据自己的需求和喜好选择其中的一种。
阅读全文