查看: 12|回复: 0

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

    [复制链接]

    335

    主题

    335

    帖子

    791

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    791
    发表于 2023-9-19 13:21:15 | 显示全部楼层 |阅读模式
    C与C++字符串分割方法示例汇总
    在C语言中,没有内置的字符串分割函数。但是,你可以使用其他字符串操作函数和循环来实现字符串分割。这里是使用 strtok 函数在C中分割字符串的示例:
    1. #include <stdio.h>
    2. #include <string.h>
    3. int main() {
    4.     char str[] = "Hello,World,How,Are,You";
    5.     char* token = strtok(str, ",");
    6.     while (token != NULL) {
    7.         printf("%s\n", token);
    8.         token = strtok(NULL, ",");
    9.     }
    10.     return 0;
    11. }
    复制代码

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

    1. 使用 std::stringstream :

    1. #include <iostream>
    2. #include <sstream>
    3. #include <string>
    4. #include <vector>
    5. int main() {
    6.     std::string str = "Hello,World,How,Are,You";
    7.     std::stringstream ss(str);
    8.     std::string token;
    9.     std::vector<std::string> tokens;
    10.     while (std::getline(ss, token, ',')) {
    11.         tokens.push_back(token);
    12.     }
    13.     for (const auto& t : tokens) {
    14.         std::cout << t << std::endl;
    15.     }
    16.     return 0;
    17. }
    复制代码

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

    1. #include <iostream>
    2. #include <string>
    3. #include <vector>
    4. int main() {
    5.     std::string str = "Hello,World,How,Are,You";
    6.     std::vector<std::string> tokens;
    7.     std::string delimiter = ",";
    8.     size_t pos = 0;
    9.     std::string token;
    10.     while ((pos = str.find(delimiter)) != std::string::npos) {
    11.         token = str.substr(0, pos);
    12.         tokens.push_back(token);
    13.         str.erase(0, pos + delimiter.length());
    14.     }
    15.     tokens.push_back(str);
    16.     for (const auto& t : tokens) {
    17.         std::cout << t << std::endl;
    18.     }
    19.     return 0;
    20. }
    复制代码

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



    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    免责声明:
    1、转载或引用本网站内容须注明原网址,并标明本网站网址“源码资源网”
    2、转载或引用本网站中的署名文章,请按规定向原作者支付稿酬
    3、对于不当转载或引用本网站内容而引起的民事纷争、行政处理或其他损失,本网站不承担责任
    4、对不遵守本声明或其他违法、恶意使用本网站内容者,本网站保留追究其法律责任的权利
    5、资源部分来自网络,不保证资源的完整性,仅供学习研究,如需运营请购买正版,如有侵权请联系客服删除
    6、本站所有资源不带技术支持,下载资源请24小时内删除,如用于违法用途,或者商业用途,一律用于者承担

    QQ|手机版|小黑屋|依星源码资源网-分享编程干货的网站 ( 鲁ICP备2021043233号-3 )

    GMT+8, 2023-10-1 23:27

    邮箱:312337667@qq.com 客服QQ:312337667(工作时间:7:00~23:00)

    © Powered by Net188.com X3.4

    快速回复 返回顶部 返回列表