介绍
本篇文章给大家分享的是有关在c语言或c++中利用sscanf怎么对数据进行拆分,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
<强> sscanf使用示例强>
示例:使用sscanf分割文件中的数据,数据源示例如下
川EZ1E58,贵GQ7708,: 1302
贵AE0996,: 185
贵A0PJ06,贵JYN192,贵JYN192,: 128
引用>分割代码如下所示:
# include & lt; stdio.h> # include & lt; string.h> int DealLine (char * StrLine) {//找到:数据保存 char Parkid [20]=?”; char * p=StrLine; char * prt=StrLine; char carNum [20]=?”; 如果(p=strstr (p,“:“)) { p=p + 1; strncpy (Parkid p 20); printf (“Parkid==% s", Parkid); 其他}{ 返回1; } char endflag=0; 而(1){ endflag=* prt; 如果(endflag==58) { 返回0; } memset (carNum 0 20); sscanf (prt,“% [^]“, carNum); prt=strstr (prt、“、“); prt=prt + 1; printf (“carNum=% s \ n", carNum); } } int主要(空白) { 文件*《外交政策》; char StrLine [1024]=?”; fp=fopen (“。/test1.txt",“r");//判断文件是否存在及可读 如果(fp==NULL) { printf(“开放fail"); 返回1; } 而(! feof (fp)) { fgets (StrLine, 1024,《外交政策》);//读取一行 printf (“\ n \ n \ n"); printf (“% s \ n" StrLine); int ret=DealLine (StrLine); } 文件关闭(fp); 返回0; }<>强sscanf从字符串中按照指定格式提取数据强>
我们在学习C语言的时候,一定都使用过scanf函数,它表示从标准输入中按照指定格式接收数据到变量。实际编程中,我们常常希望能从字符串中,提取想要的数据时,此时我们就可以派上sscanf函数了。
<代码> sscanf 代码>
sscanf函数声明如下:
int sscanf (const char * str, const char *格式,…),
引用>它表示从字符串str中按照格式格式提取数据到指定变量中。
<代码> sprintf 代码>
常常和sscanf配合使用的是sprintf函数,其函数声明如下:
int sprintf (char *缓冲区,const char *格式,…),
引用>它表示提取变量中的数据按照指定格式组装成一个字符串。
用例
//提取姓名和年龄 句子char[]=奥车婪蚴?2年往往比; 字符的名字[20]={}; int年龄=0; sscanf(句子,“% s % d",名字,和年龄); printf(“名字:% s年龄:% d \ n",姓名、年龄);//将字符串进行每两位进行分割,最后一位分割为是一位数。 const char * pszClassID=?234070809001”; 无符号字符ucFillMsg [128]={}; char szSrcMsg [128]={}; sscanf (pszClassID,“% 2 d % 2 d % 2 d % 2 d % 2 d % 2 d % 1 d", ,ucFillMsg [0], ,ucFillMsg [1], ,ucFillMsg [2], ,ucFillMsg [3], ,ucFillMsg [4], ,ucFillMsg [5], ,ucFillMsg [6]);//还原为字符串,不足两位左边补0 sprintf (szSrcMsg“% 2 d % 2 d % 2 d % 2 d % 2 d % 2 d % 01 d", ucFillMsg [0], ucFillMsg [1], ucFillMsg [2], ucFillMsg [3], ucFillMsg [4], ucFillMsg [5], ucFillMsg [6]); printf (“src字符串:% s \ n", szSrcMsg); 如果(strcmp (pszClassID szSrcMsg)==0) { printf(“好的\ n"); }//提取每个IP值 const char * pszIP=?92.168.45.11"; 无符号字符ucIPAddr [4]={}; sscanf (pszIP,“% d % d % d % d",, ucIPAddr [0], ,ucIPAddr [1], ,ucIPAddr [2], ,ucIPAddr [3]); (size_t我=0;我& lt;4;我+ +) { printf (“ip元素[% d]: % d \ n",我,ucIPAddr[我]); }执行结果:
名称:鲁道夫年龄:12 src字符串:1234070809001 好吧 ip元素[0]:192 ip元素[1]:168 ip元素[2]:45 ip元素[3]:11以上就是在c语言或c++中利用sscanf怎么对数据进行拆分,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
在c语言或c++中利用sscanf怎么对数据进行拆分