如何使用 sscanf 解析逗号分隔字符串中的字段,同时支持空字段?

2023-11-26

我有一个逗号分隔的字符串,其中可能包含空字段。例如:

1,2,,4

使用基本的

sscanf(string,"%[^,],%[^,],%[^,],%[^,],%[^,]", &val1, &val2, &val3, &val4);

我获得了空字段之前的所有值,以及从空字段开始的意外结果。

当我从 sscanf() 中删除空字段的表达式时,

sscanf(string,"%[^,],%[^,],,%[^,],%[^,]", &val1, &val2, &val3, &val4);

一切顺利。

由于我不知道什么时候会得到一个空字段,有没有办法重写表达式来优雅地处理空字段?


如果你使用strtok使用逗号作为分隔符,您将获得一个字符串列表,其中一个或多个字符串的长度为空/零。

看看我的在这里回答了解更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 sscanf 解析逗号分隔字符串中的字段,同时支持空字段? 的相关文章

  • 当其源是 https uri 时如何使 wpf MediaElement 播放

    在 wpf 独立应用程序 exe 中 我在主窗口中包含了 MediaElement
  • EventHandler 应该始终用于事件吗?

    我一直在愉快地使用自定义委托类型和通用编写事件Action委托类型 没有真正考虑我在做什么 我有一些很好的扩展助手Action and EventHandler这使我倾向于使用那些预定义的委托类型而不是我自己的委托类型 但除此之外 除了惯例
  • 通过 SOAP 的 Gmt php 或 UTC C# 等效项

    is C DateTime UtcNow和 PHPdate c 是等价的 我怀疑 因为当我肥皂时 我得到了 C
  • Import-Csv - 成员已存在问题

    我必须将多个 CSV 文件合并为一个文件 每个 CSV 都有一个标题 其中一列标题是相同的 理想情况下 最终文件 all out csv 必须有一个标头 我运行 PowerShell 代码 Import Csv out 1 result c
  • OpenGL缓冲区更新[重复]

    这个问题在这里已经有答案了 目前我正在编写一个模拟水的程序 以下是我所做的步骤 创建水面 平面 创建VAO 创建顶点缓冲区对象 在其中存储法线和顶点 将指针绑定到此 VBO 创建索引缓冲区对象 然后我使用 glDrawElements 渲染
  • 如何使用 C# 以编程方式编辑 Power BI Desktop 文档参数或数据源?

    我有一个在 Power BI Desktop 中内置的报告模板 并保存为 pbix 或 pbit 文件 该模板使用DirectQuery SQL数据库作为数据源 而服务器地址和数据库名称被提取到参数中 还有一个参数包含一个ReportId
  • C# Outlook 从收件人获取 CompanyName 属性

    我目前正在使用 C 编写 Outlook 2010 AddIn 我想要的是从我从 AppointmentItem 中提取的 Recipient 对象中获取 CompanyName 属性 因此 有了 AppointmentItem 的收件人
  • C++中的类要具备什么条件才能成为容器?

    我是 C 编程新手 偶然发现了这个术语containers举例如下vector deque map etc 一个企业的最低要求应该是什么class应该满足被称为container in C 我将从 范围 这个概念开始 Range 只有两个方
  • 以下 PLINQ 代码没有改进

    我没有看到使用以下代码的处理速度有任何改进 IEnumerable
  • 提升mapped_file_source、对齐方式和页面大小

    我正在尝试在性能很重要的上下文中解析一些大小高达几百兆字节的文本文件 因此我使用 boostmapped file source 解析器期望源以空字节终止 因此我想检查文件大小是否是页面大小的精确倍数 如果是 则使用较慢的非内存映射方法 我
  • 如何使用 C# 查询远程 MS ACCESS .mdb 数据库

    我正在尝试使用 C 查询 mote MS ACCESS 数据库 mdb 文件 将文件复制到本地计算机时可以成功查询它 我只想远程放置文件 所以我的客户端程序不包含原始数据 static string m path http www xyz
  • MSChart 控件中的自定义 X/Y 网格线

    我有一个带有简单 2D 折线图的 C Windows 窗体 我想向其中添加自定义 X 或 Y 轴标记 并绘制自定义网格线 例如 以突出显示的颜色 虚线 我查看了 customLabels 属性 但这似乎覆盖了我仍然想显示的默认网格 这是为了
  • C 与 C++ 中的 JNI 调用不同?

    所以我有以下使用 Java 本机接口的 C 代码 但是我想将其转换为 C 但不知道如何转换 include
  • 时间:2019-03-17 标签:c#TimerStopConfusion

    我想通过单击按钮时更改文本颜色来将文本框文本设置为 闪烁 我可以让文本按照我想要的方式闪烁 但我希望它在闪烁几次后停止 我不知道如何在计时器触发几次后让它停止 这是我的代码 public Form1 InitializeComponent
  • 与 Entity Framework Core 2.0 的一对零关系

    我正在使用 C 和 NET Framework 4 7 将 Entity Framework 6 1 3 Code First 库迁移到 Entity Framework Core 我一直在用 Google 搜索 Entity Framew
  • 使用 boost 异步发送和接收自定义数据包?

    我正在尝试使用 boost 异步发送和接收自定义数据包 根据我当前的实现 我有一些问题 tcpclient cpp include tcpclient h include
  • 使用 IdentityDbContext 和 Code First 自动迁移表位置和架构的实体框架?

    我正在尝试使用 IdentityDbContext 类设置自动迁移更新 并将更改传播到整个数据库的实际 DbContext 在进入代码之前 在使用自动迁移实现 IdentityDbContext 时 我收到此错误 影响迁移历史系统表位置的自
  • MSVC编译器下使用最大成员初始化联合

    我正在尝试初始化一个LARGE INTEGER在 C 库中为 0 确切地说是 C 03 以前 初始化是 static LARGE INTEGER freq 0 在 MinGW 下它产生了一个警告 缺少成员 LARGE INTEGER Hig
  • Emacs C++,打开相应的头文件

    我是 emacs 新手 我想知道 是否有在头文件 源文件和相应的源文件 头文件之间切换的快捷方式 是否有像通用 emacs 参考卡那样的参考卡 Thanks There s ff find other file 您可以使用以下方法将其绑定到
  • 是否可以使用 Dapper 流式传输大型 SQL Server 数据库结果集?

    我需要从数据库返回大约 500K 行 请不要问为什么 然后 我需要将这些结果保存为 XML 更紧急 并将该文件通过 ftp 传输到某个神奇的地方 我还需要转换结果集中的每一行 现在 这就是我正在做的事情 TOP 100结果 使用 Dappe

随机推荐

  • 如何使用 CSS 设置警报框样式?

    更新 我读了很多关于这个主题的文章 尝试了一些脚本 需要帮助来找出你能做什么或不能做什么 社区回答了这一切 以下是一个很好的起点 这里的答案摘自下面的社区 谢谢 您无法覆盖默认的警报方式 它是由您的客户端生成的 edge chrome fi
  • 如何在 VB.NET 中获取 Caps Lock 的当前状态?

    如何使用 VB NET 查明 Caps Lock 是否已激活 这是我的后续先前的问题 Control IsKeyLocked Keys 方法 MSDN Imports System Imports System Windows Forms
  • XmlSerializer、“指定”后缀和 IReflect

    我发现如果一个可序列化的领域 财产有一个对应的类型字段Boolean名字为领域 财产带有 指定 后缀的名称 XmlSerializer 有条件地排除该名称领域 财产从序列化过程来看 好的 所以 我想避免这些字段的定义 并在运行时动态添加它们
  • curl 响应显示“不支持 HTTP 版本”,错误 505

    我使用curl发出请求 响应说不支持HTTP版本 错误505 使HTTP版本受支持的步骤是什么 谷歌搜索后 我应该使用curl http2 0 来使其工作 但我的curl 版本不支持该选项 因为它是在curl 7 33 中添加的 而我使用的
  • 我可以从脚本或命令行将文件复制到网上邻居吗? [关闭]

    Closed 这个问题是无关 目前不接受答案 在 Windows XP 中 是否可以通过命令行 批处理文件或者更好的 PowerShell 脚本将文件复制到网上邻居 让我走上这条研究道路的是尝试将文件从用户的计算机发布到 WSS 3 0 文
  • Notepad++ 正则表达式 -> newLine

    我使用 Notepad 我需要删除以 abc 开头的所有行 注意 我不需要将以 abc 开头的行替换为空行 但我需要完全删除这些行 我该如何继续 我想使用正则表达式 尝试更换 abc r n with nothing The 表示一行的开始
  • jQuery 动画回到原始位置

    我正在开发一个网站 其中有一些绝对定位的 div 我需要在单击时调整其大小 然后这些将填充 div 所在的容器 问题是如何让它们切换到去返回到原始位置 顶部 左侧 每个位置都不同 work item toggle toggle functi
  • 单例或类方法[重复]

    这个问题在这里已经有答案了 阅读完对某个问题的回复后question关于 Objective C 中的单例 似乎每个解决方案都在实例访问器中的线程方面做出了一些权衡 IE synchronized self if sharedInstanc
  • 不在对象上下文中时使用 $this - Laravel 4 PHP 5.4.12

    我试图使用变量 this 访问构造函数上的实例 在所有其他方法中 当我打电话时似乎效果很好 this gt event gt method 但在这个方法上它给我一个错误 不在对象上下文中时使用 this 我刚刚对这个问题进行了研究 我发现的
  • Java TLS 套接字:找不到受信任的证书

    让我快速解释一下我想要做什么 我正在尝试用 java 构建我自己的 Apple 推送通知服务 用于测试目的 该服务的工作得益于 TLS 套接字 我有一个 java 客户端来创建 TLS 套接字以向 APN 发送推送通知 我更改了主机 url
  • OUTER JOIN 结果缺少行,没有 WHERE 子句(已找到解决方法)

    更新在底部 我正在尝试执行自外连接 对于每个记录 返回它以及晚于它发生的所有其他记录 如果它本身是最新记录 则返回 NULL 这是我的sql代码 SELECT A CR A REGIS STATUSDATE B REGIS STATUSDA
  • 应用程序在 runTransitionForCurrentState 上崩溃,但不知道为什么

    我尝试过寻找这个 但没有运气 所以希望有一些大师可能知道答案 我在 iTunes Connect 中看到大量关于我的应用程序因特定堆栈跟踪而崩溃的报告 但堆栈跟踪没有显示任何有用的信息 0 Crashed main 0 UIKit 0x18
  • Hibernate 验证“无法初始化 javax.el.E​​xpressionFactory”错误

    我正在尝试使用休眠验证 代码可以编译 但是启动时失败并出现错误 Exception in thread main javax validation ValidationException HV000183 Unable to initial
  • Typescript 中的 React-Redux 连接问题

    我正在尝试制作一个传递给react redux的组件connect功能 组件如下 interface ITestProps id number class TestComponent extends React Component
  • 右边框渐变

    我正在尝试制作右边框 ul 元素为线性渐变 我尝试过以下但没有成功 webkit border image webkit linear gradient top FE2EF7 4AC0F2 0 0 5px 我正在使用 Chrome 非常感谢
  • C - “char var[]”和“char *var”之间的区别?

    我期望以下两个向量在 RAM 中具有相同的表示形式 char a var XXX x00 char p var XXX 但奇怪的是 调用类型的库函数f char argument 如果我使用以下方式调用它 则会破坏正在运行的应用程序f p
  • 如何在 PostgreSQL 中使用 RETURNING 和 ON CONFLICT?

    我在 PostgreSQL 9 5 中有以下 UPSERT INSERT INTO chats user contact name VALUES 1 2 3 2 1 NULL ON CONFLICT user contact DO NOTH
  • WinRT XAML 中 GridView 项目组内的垂直滚动

    我正在使用 GridView 在 WinRT XAML 应用程序中显示不同组的项目 一切都运行良好 除了 ItemsPanelTemplate 使用环绕网格 当空间不足时它会垂直堆叠我的项目 所以 我尝试使用 StackPanel 如下所示
  • Python 日志记录模块发出错误的时区信息

    我遇到了 Python 2 7 日志记录模块的问题 我的系统是Ubuntu 14 04 64bit 我住在意大利 目前UTC 1 无夏令时 系统已正确配置 我想在当前时区发出日志行 并包含正确的时区偏移信息 考虑以下片段 usr bin e
  • 如何使用 sscanf 解析逗号分隔字符串中的字段,同时支持空字段?

    我有一个逗号分隔的字符串 其中可能包含空字段 例如 1 2 4 使用基本的 sscanf string val1 val2 val3 val4 我获得了空字段之前的所有值 以及从空字段开始的意外结果 当我从 sscanf 中删除空字段的表达