首页 > 后端开发 > C++ > 正文

如何使用 stringstream 在 C 中有效分隔逗号分隔的字符串?

Barbara Streisand
发布: 2024-11-23 07:18:16
原创
243 人浏览过

How Can I Efficiently Separate Comma-Delimited Strings in C   Using stringstream?

使用 Stringstream 分隔逗号分隔的字符串

在 C 中,stringstream 是操作字符串和提取数据的强大工具。虽然它可以轻松分隔以空格分隔的字符串,但逗号分隔的字符串需要稍微修改一下方法。

原始方法:

以下代码演示了使用 stringstream 的原始方法来分隔字符串空格:

std::string str = "abc def,ghi";
std::stringstream ss(str);

string token;

while (ss >> token)
{
    printf("%s\n", token.c_str());
}
登录后复制

输出:

abc
def,ghi
登录后复制

此方法无法分隔逗号分隔的标记,因为 >> stringstream 中的运算符假定空格字符作为分隔符。

修改方法:

要分隔逗号分隔的字符串,我们可以利用 stringstream 提供的 getline() 函数。该函数允许我们读取字符串,直到遇到指定的分隔符。下面是修改后的代码:

#include <iostream>
#include <sstream>

std::string input = "abc,def,ghi";
std::istringstream ss(input);
std::string token;

while(std::getline(ss, token, ',')) {
    std::cout << token << '\n';
}
登录后复制

输出:

abc
def
ghi
登录后复制

解释:

getline() 函数读取输入字符串 ss 并提取一个标记,直到我们指定为的字符第一次出现为止分隔符(这里是逗号)。然后,它将提取的令牌分配给令牌字符串,如果成功则返回 true。通过重复调用 getline(),我们可以迭代输入字符串中以逗号分隔的标记。

这种方法有效地将逗号分隔的字符串分隔为单独的标记,从而允许在程序中进行进一步处理或操作。

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

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