问题很简单,我希望答案也很简单:)
假设你有一个模式,你必须阅读一个文本文件,每一行由第一个数字组成,表示字符串中“模式”的数量,以及一个模式元素空间。
例如,给定模式
key value
文本文件的有效行可以是
3 10 "apple" 15 "orange" 17 "melon"
如果重复次数N是固定的,我会使用类似
的东西fscanf(inFile,"%d %s",&n,str);
但是有一个函数允许我将重复次数作为参数,或者我应该使用substr和atoi来扫描每一行并提取我感兴趣的值吗?
“琐碎”的方式很明显,我正在寻找更“专业”和有效的东西。
答案 0 :(得分:2)
在循环中使用fscanf():首先提取重复次数N,然后循环N次提取模式。
如果您正在寻找更专业或更复杂的东西,您可能希望远离标准C库,转向正则表达式或解析库,或者提及的事情:http://www.and.org/vstr/comparison。虽然我不会说你不能轻易地或在C语言中进行字符串处理,但它并不是核心语言的强项。