C与C++字符串分割方法示例汇总

在C语言中,没有内置的字符串分割函数。但是,你可以使用其他字符串操作函数和循环来实现字符串分割。这里是使用 strtok 函数在C中分割字符串的示例:

#include 
#include 
int main() {
    char str[] = "Hello,World,How,Are,You";
    char* token = strtok(str, ",");
    while (token != NULL) {
        printf("%s\n", token);
        token = strtok(NULL, ",");
    }
    return 0;
}

在C++中,有多种方法可以分割字符串。这里介绍两种常见的方法:

1. 使用 std::stringstream :

#include 
#include 
#include 
#include 
int main() {
    std::string str = "Hello,World,How,Are,You";
    std::stringstream ss(str);
    std::string token;
    std::vector tokens;
    while (std::getline(ss, token, ',')) {
        tokens.push_back(token);
    }
    for (const auto& t : tokens) {
        std::cout << t << std::endl;
    }
    return 0;
}

2. 使用 std::string 成员函数:

#include 
#include 
#include 
int main() {
    std::string str = "Hello,World,How,Are,You";
    std::vector tokens;
    std::string delimiter = ",";
    size_t pos = 0;
    std::string token;
    while ((pos = str.find(delimiter)) != std::string::npos) {
        token = str.substr(0, pos);
        tokens.push_back(token);
        str.erase(0, pos + delimiter.length());
    }
    tokens.push_back(str);
    for (const auto& t : tokens) {
        std::cout << t << std::endl;
    }
    return 0;
}

这两种方法都是根据一个分隔符(在这个例子中是 , )来分割字符串,并将结果子字符串存储在一个容器(如 std::vector )中。你可以修改分隔符以根据不同的字符或模式来分割字符串。

你可能感兴趣的:(c语言,c++,算法)