#include #include #include int main() { char *p = "hello\"world"; printf("\"%s\n", p); char q[15] = {0}; char r[15] = {0}; sscanf(p,"%[^\"]%*c%s",r,q); printf("%s\n", r); printf("%s\n", q); return 0; } http://www.cnblogs.com/youthlion/archive/2009/06/2 1/1507586.html 出处:http://blog.csdn.net/phil2036/archive/2009/05/27/4 221704.aspx
感谢原文作者分享。
在看这篇文章之前建议你先了解一下什么是正则表达式,具体不重复了,google一下能出一大堆,不过这篇文章比较好,贴个url http://unibetter.com/deerchao/zhengzhe-biaodashi-j iaocheng-se.htm,作者说30分钟能看完的不是地球人,但是我15分钟就看完了还记住了90%以上,好吧我来自火星,玩笑到此结束,下面切入正题。
本文的命题源自于这样的一个url,protocol://ip:port/chn/mode,比如说,dv://192.168.1.253:65001/1/1。如果我要解析出来各个部分,并把它们保存到各自的变量里面要怎么做?传统的C程序员会说用strtok慢慢取得各个部分,对于要转成int的用atoi,部分C++程序员也许会放弃strtok转用std::string当中的find系列成员函数(find/find_first_of...)。是的,我以前也是这么干的,两种方法都用过,当然也包括MFC里的CString的相关成员函数。现在,一种全新的方法源自于sscanf这个C语言函数。
无论你用C还是C++,sscanf和scanf这两个函数都不会太陌生,%d %s %f甚至%02d %.2f这些东西你也很熟,看了上面我说的正则表达式,也许你会写出这么一个正则表达式:[a-zA-Z]+://(\d{1,3}\.){3}(\d{1,3}):\d{1,5}/\d{1,} /\d,没错,这个正则表达式的IP部分有点问题,但是为了描述简单,暂时就这么用了。激动人心的时候到了,我要告诉你的是scanf以及sscanf实际上是支持部分正则表达式的,当然即使是到现在我依旧不敢肯定这个部分是否是ANSI的一部分,但是我的VS2005上没有问题,朋友的VS2003上也没有问题,至于VC6实在太古老暂时找不到测试。但是顺便说一句,VS2005上你用sscanf或者scanf他会出警告的,他说这两个函数不安全建议你用sscanf_s和scanf_s,我试了下推荐的两个函数又不支持这个功能了,比较
发表评论
-
DES加密、解密字符串算法(java版)
2012-07-06 09:52 574DESPlus.java /** * @author 李国 ... -
javascript的正则表达式语法和常用方法说明
2012-07-06 09:37 706一、正则表达式语 ... -
cst软件求解器原理
2012-07-06 09:30 1053本人毕业之后为机械工程师,做了一年多的结构工程师后转向51 ... -
收集的一些滚动图片的脚本!
2012-07-05 20:45 668无标题文档 #demo { backgroun ... -
Flash合照成员信息提示组件
2012-07-03 13:43 594这是一个简单的FLAS ... -
Flex拓扑图的设计(二)机房设计
2012-07-02 12:20 603flex以及其优越的交互性,在flex3的时候已经得到大家 ... -
flex与twisted通过socket通信
2012-07-02 12:20 703flex端代码 height="510&quo ... -
使用FLEX的HttpService与ASP.NET进行动态交互之一(转载)
2012-07-02 12:20 515使用FLEX的HttpService ... -
Flex4中 一个使用Module的例子
2012-07-02 12:20 658使用Flex的Module技术, 将各个业务子模块分散成若 ... -
将flex组件添加到papervision3d
2012-07-02 12:19 591上一篇文章介绍了 ... -
Flex 中List控件的使用,绑定XML!
2012-07-01 09:54 617效果图: Flex代码如下: flex/sp ... -
在Flex组件上显示手型的鼠标
2012-07-01 09:54 549在Flex组件上显示手型的鼠标 有些时候,我们需 ... -
flex学习-----控件与菜单
2012-07-01 09:54 589一、状态按钮 ToggleButtonBar ... -
flex中给图片(或任意组件)着色的方法
2012-07-01 09:54 511作者:屈剑峰 2011年4月3日 在fl ... -
Flex remoteobject工作原理探讨
2012-07-01 09:54 507Flex访问远程服务都是通过AbstractService ... -
笔记本电脑必读手册-
2012-06-30 16:18 536笔记本电脑必读手册- 2 ... -
笔记本电脑品牌排名|全球笔记本电脑品牌综合排名?
2012-06-30 16:18 932笔记本电脑品牌排名|全球笔记本电脑品牌综合排名? 2011年 ... -
怎样购买笔记本电脑-世界十大品牌
2012-06-30 16:17 751怎样购买笔记本电脑-世 ... -
2010年最受关注的笔记本排行
2012-06-30 16:17 6892010年最受关注的笔记本排行 2011年04月26日 ...
相关推荐
js中正则表达式的使用js中正则表达式的使用js中正则表达式的使用js中正则表达式的使用js中正则表达式的使用js中正则表达式的使用js中正则表达式的使用
编译原理四则运算表达式
javascript中正则表达式用法详解
最全正则表达最全正则表达式教程
在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/ 或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则...
JAVA中正则表达式的应用 个人在网上 自己在家里写一些 java中常用的正则表达式 文件格式doc
实现的词法分析程序的功能是,接受一个表达式,输出该表达式中的各类单词符号。测试词法分析程序时,可以按照一定格式输出各类单词符号。 单词符号的种类和所属类型可定义如下 typedef enum Symbol { ERR = -1, END,...
按中缀形式输入一个四则运算的表达式,利用算法优选算法把其转换为后缀表达式输出,并求表达式的值。假设输入的表达式中的操作数都是1位整数。
易语言四则表达式计算器源码,四则表达式计算器
数据结构课上的作业,完全实现题设要求,简单易懂
易语言枫则表达式模块源码,枫则表达式模块,加入文本,次方_,整除_,求余_,加_,减_,乘_,除_,赋值_,信息框_,等于_,不等于_,大于_,小于_,负,正,变量声明,播放系统声音_,定义法则,枫则表达式,分级运算,取操作数,检测括号,...
Java中正则表达式使用方法详解.docx 网上搜集的Java中正则表达式使用方法详解
(1) 以逆波兰表示输入的算术表达式(假设每个操作数都以单字符字母表示,即操作数的标 识符为一个字母); (2) 初始化表达式树; (3) 生成表达式树; (4) 输出表达式树的各种遍历的结果; (5) 打印表达式...
四则运算表达式求值,将四则运算表达式用中缀表达式,然后转换为后缀表达式,并计算结果。
正则表正则表达式正则表达式正正则表达式正则表达式正则正则表达式表正则正则表达式表达式正则表达式达式则表达式达式
php中正则表达式,主要是平常常用的正则表达式匹配使用