sscanf,双引号中包含空字符串

时间:2018-07-10 07:57:18

标签: string null scanf quotes

我收到了带引号的子字符串的参数ASCII字符串。 某些子字符串可能为空,例如“”。 我正在尝试使用sscanf解码字符串并将值输入到一组参数中。 我的问题是,当字符串为null时,sscanf从那时开始会返回垃圾。 所以我怀疑我没有为任务创建正确的说明符。 例子

char testString[] = "\"string1\",\"\",\"\"";

给出结果

string1,P~�,

char testString[] = "\"string1\",\" \",\" \"";

给出结果

string1, , 

总的来说,我期望使用空字符串的结果是:

string1,,

sscanf语句是

int i = sscanf(testString, "\"%[^\"]\",\"%[^\"]\",\"%[^\"]\",", string1, string2, string3);

在第一种情况下sscanf返回1,在第二种情况下返回3。 所以我的问题是我需要使用什么格式说明符来处理空字符串。

非常感谢

0 个答案:

没有答案