首页 > 后端开发 > C++ > 如何在 C 中有效地从逗号分隔的字符串中提取整数?

如何在 C 中有效地从逗号分隔的字符串中提取整数?

Mary-Kate Olsen
发布: 2024-12-29 10:02:09
原创
707 人浏览过

How Can I Efficiently Extract Integers from a Comma-Separated String in C  ?

从 C 语言中的逗号分隔字符串中提取数字数据

将逗号分隔字符串中的数据解析为数值数组是编程中的常见挑战。对于整数的具体情况,C 提供了几种简单的方法。

基本解析算法:

一种简单的方法涉及逐个字符地迭代字符串。对于每个字符,检查下一个字符是否是逗号。如果是,则丢弃逗号。否则,将字符转换为整数并将其存储在数组中。

使用 istringstream:

C 标准库提供了 istringstream 类用于解析输入流。要从逗号分隔的字符串中提取数字,请使用该字符串作为输入创建一个 istringstream 对象。然后,使用流提取运算符>>一次提取每个数字。

实现:

以下代码片段演示了使用 istringstream 的基本解析算法:

#include <vector>
#include <string>
#include <sstream>
#include <iostream>

int main()
{
    std::string str = "1,2,3,4,5,6";
    std::vector<int> vect;

    std::stringstream ss(str);

    for (int i; ss >> i;) {
        vect.push_back(i);    
        if (ss.peek() == ',')
            ss.ignore();
    }

    for (std::size_t i = 0; i < vect.size(); i++)
        std::cout << vect[i] << std::endl;

    return 0;
}
登录后复制

其他选项:

对于更复杂的对于解析场景,C 标准库提供了额外的选项,例如 strtok 函数和正则表达式。但是,对于简单的逗号分隔整数列表,上述方法通常足够且易于实现。

以上是如何在 C 中有效地从逗号分隔的字符串中提取整数?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板