#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h> /* sscanf特殊用法补充 */ void test()
{
const char * p1 = "333<key:value>abcde";
const char * p2 = "<key:value>abcde";
int rc = ;
char buf1[] = { };
char buf2[] = { };
char buf3[] = { };
int index = ; /*
目标:
提取<>中的内容
*/ rc = sscanf(p1, "%[^<]<%[^>]>%n%s", buf1, buf2, &index, buf3);
printf("==11111==rc[%d]==buf1[%s]===buf2[%s]=buf3[%s]===index[%d]=====\n", rc, buf1, buf2, buf3, index);
/*
说明:
%n获取的是截止到>这个数据的长度,这个长度是相对于源字符串p1,而不是相对于%[^<],%n可以放在任何地方,他就是用来统计到当前位置的长度 特别强调,%n不包括在返回值中,这里rc的值是3,而不是4
*/ //注意点
memset(buf1, , );
memset(buf2, , );
memset(buf3, , );
index = ;
rc = sscanf(p2, "%[^<]<%[^>]>%n%s", buf1, buf2, &index, buf3);
printf("====2222222==rc[%d]==buf1[%s]===buf2[%s]=buf3[%s]===index[%d]=====\n", rc, buf1, buf2, buf3, index);
/*
强调:
当匹配p2时,什么都没有匹配到,原因是p2不符合%[^<]这个条件,p2以<开始,所以%[^<]匹配不到任何东西,需要注意这一点
强调sscanf匹配时,必须能匹配到数据,数据不可以不存在,这一点和正则不同
*/ } int main(int argc, char *argv[])
{
test();
printf("-----ok------\n");
getchar();
return ;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h> //sscanf指定检索长度 void test()
{
const char* p = "%8888asdas";
char buf[] = { };
int n = ; if (sscanf(p, "%%%x", &n))
{
printf("---111---[%d]------\n", n); //打印‭559242‬,因为提取的十六进制数是8888a
} if (sscanf(p, "%%%2x", &n))
{
printf("----22--[%d]------\n", n); //打印‭136,因为提取的十六进制数是88
} //说明: 其他提取方式类同,例如 %3s 表示提取3个字符
} int main()
{
test();
return ;
}

最新文章

  1. phpmyadmin中访问时出现2002 无法登录 MySQL 服务器
  2. iOS 串行网络请求。。。待研究
  3. IOS第八天(5:UITableViewController新浪微博, 计算行高)
  4. 调用Newtonsoft.Json 报FileNotFoundException 错误
  5. Double-checked locking and the Singleton pattern--双重检查加锁失效原因剖析
  6. 关于删除linux多余内核
  7. win7中CIFS挂载和解挂
  8. 系统的了解DJANGO中数据MODULES的相关性引用
  9. Linux备份与恢复
  10. Android Afinal框架学习(二) FinalActivity 一个IOC框架
  11. Ruby on Rails 實戰聖經阅读(三)
  12. hdu 4274 Spy&amp;#39;s Work(水题)
  13. ice使用过程遇到的问题
  14. Effective Objective-C 2.0 Tips 总结 Chapter 3 &amp; Chapter 4
  15. CF1037E. Trips
  16. APP test
  17. goland 中国 caisy qq Czx123456
  18. linux环境下source vimrc提示错误unexpected token `&quot;autocmd&quot;&#39;
  19. asp.net MVC html.ActionLink的几种参数格式
  20. tf.metrics.accuracy ==&gt;坑货

热门文章

  1. LXC容器
  2. uuid简述
  3. X.509_2
  4. Mac下安装oh my zsh之后配置环境变量失效问题
  5. IP trie树接口
  6. windows下面,PHP如何启动一些扩展功能
  7. unix域套接字
  8. 深度学习Keras框架笔记之AutoEncoder类
  9. python遇到动态函数---TypeError: unbound method a() must be called with A instance as first argument (got nothing instead)
  10. GlusterFS Dispersed Volume(纠错卷)总结