Chinaunix首页 | 论坛 | 博客
  • 博客访问: 191967
  • 博文数量: 27
  • 博客积分: 725
  • 博客等级: 上士
  • 技术积分: 347
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-04 09:01
文章分类

全部博文(27)

文章存档

2012年(15)

2011年(12)

分类: C/C++

2012-05-31 20:51:00

给定以下三条数据,带引号的为value,不带引号的为attribute:

  1. "zh-cn" => MetaData/Market
  2. "144" => Image/ImageHeight
  3. playUrl => Title/Url
现在需要写一个程序,依次读入每一条数据,然后分析是何种映射模式,然后调用相应的callback,该如何做呢?如下:

  1. if (sscanf(p, "%*[\"]%[^\"]\" => %s", value, rattr) == 2)
  2.         printf("\nvalue = %s, rattr = %s", value, rattr);
  3.     else if (sscanf(p, "%s => %s", lattr, rattr) == 2)
  4.         printf("\nlattr = %s, rattr = %s", lattr, rattr);
  5.     else
  6.         assert(!"Invalid file format
不知各位看到没有,此处精华就在于sscanf的用法,为了解决引号的问题着实费了不少功夫,大家可以看看有没有别的好方法。

阅读(2799) | 评论(1) | 转发(2) |
0

上一篇:名企的一些面试题,看你能做出几道

下一篇:没有了

给主人留下些什么吧!~~

Aquester2012-06-03 22:39:19

充分利用了sscanf,值得学习,如果格式再复杂些,建议了解下flex & bison,会比自己写代码简单很多。