📅  最后修改于: 2023-12-03 14:39:55.732000             🧑  作者: Mango
在C++中,需要将一个字符串拆分为多个部分,可以使用空格作为分隔符。下面我们介绍三种实现方式。
#include <iostream>
#include <string>
#include <sstream>
int main() {
std::string s = "hello world!";
std::stringstream ss(s);
std::string token;
while (getline(ss, token, ' ')) {
std::cout << token << std::endl;
}
return 0;
}
使用std::stringstream
可以将一个字符串输入流化,然后通过getline()
函数将字符串按空格分隔为多个部分。
#include <iostream>
#include <cstring>
int main() {
char s[] = "hello world!";
char* token = std::strtok(s, " ");
while (token) {
std::cout << token << std::endl;
token = std::strtok(nullptr, " ");
}
return 0;
}
std::strtok()
是一个C++库函数,可以将一个C风格字符串按空格分隔为多个部分。
#include <iostream>
#include <boost/algorithm/string.hpp>
int main() {
std::string s = "hello world!";
std::vector<std::string> tokens;
boost::split(tokens, s, boost::is_any_of(" "));
for (auto& token : tokens) {
std::cout << token << std::endl;
}
return 0;
}
使用boost::split()
函数可以将一个字符串按空格分隔为多个部分,并将结果存储在std::vector
中。
以上三种方法都可以实现将一个字符串按空格分隔为多个部分的功能,可以根据实际需求选择合适的方法。