我想读取包含后缀的未定义数量的字符串,全部由;
sscanf的解析格式的字符串
例1分离:«.TXT; .JPG; png格式»
例2 :«.TXT; .ods档案; _music.mp3; .mjpeg; .ext1; .ext2»
我browsed the web并写了一段代码,不工作:
char *suffix[MAX]; /* will containt pointers to the different suffixes */
for (i = 0; i < MAX ; i++)
{
suffix[i] = NULL;
if (suffix_str && sscanf(suffix_str,"%[^;];%[^\n]",suffix[i],suffix_str) < 1)
suffix_str = NULL;
}
第一次迭代后,sscanf
的结果为0.为什么它没有读取字符串的内容?
如何解析一个包含未定义数量元素的字符串? sscanf
是不错的选择?
'suffix'变量应该是什么? – 2015-02-10 08:22:53
为什么不用它分割而不是['strtok'](http://en.cppreference.com/w/c/string/byte/strtok)? – 2015-02-10 08:23:48
'char * suffix [MAX]'是指向不同后缀的'char *'数组,当没有更多后缀时,它们就是NULL。整个字符串在循环后被解析,以'\ 0'代替';'。 – Jav 2015-02-10 08:25:05