我有一个逗号分隔的字符串,其中可能包含空字段。例如:
1,2,,4
使用基本
sscanf(string,"%[^,],%[^,],%[^,],%[^,],%[^,]", &val1, &val2, &val3, &val4);
我得到空字段之前的所有值,以及空字段之后的意外结果。
当我从 sscanf() 中删除空字段的表达式时,
sscanf(string,"%[^,],%[^,],,%[^,],%[^,]", &val1, &val2, &val3, &val4);
一切顺利。
由于我不知道什么时候会得到一个空字段,有没有办法重写表达式来优雅地处理空字段?
最佳答案
如果您使用 strtok
并将逗号作为分隔符,您将获得一个字符串列表,其中一个或多个字符串的长度为空/零。
看看我的 answer here获取更多信息。
关于c - 如何在支持空字段的同时使用 sscanf 解析逗号分隔字符串中的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1508754/