📜  c++ 用几个空格分割字符串 - C++ (1)

📅  最后修改于: 2023-12-03 14:39:55.732000             🧑  作者: Mango

C++用几个空格分割字符串

在C++中,需要将一个字符串拆分为多个部分,可以使用空格作为分隔符。下面我们介绍三种实现方式。

方法一:使用stringstream
#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()函数将字符串按空格分隔为多个部分。

方法二:使用库函数strtok
#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风格字符串按空格分隔为多个部分。

方法三:使用boost库
#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中。

以上三种方法都可以实现将一个字符串按空格分隔为多个部分的功能,可以根据实际需求选择合适的方法。