相关疑难解决方法(0)

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

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

1,2,,4
Run Code Online (Sandbox Code Playgroud)

使用基本的

sscanf(string,"%[^,],%[^,],%[^,],%[^,],%[^,]", &val1, &val2, &val3, &val4);
Run Code Online (Sandbox Code Playgroud)

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

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

sscanf(string,"%[^,],%[^,],,%[^,],%[^,]", &val1, &val2, &val3, &val4);
Run Code Online (Sandbox Code Playgroud)

一切都很好.

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

c csv string parsing scanf

11
推荐指数
2
解决办法
5万
查看次数

标签 统计

c ×1

csv ×1

parsing ×1

scanf ×1

string ×1