sprintf 组包 sscanf解包

一:sprintf 组包


void test01()  
{      
int year = 2019;      
int mon = 8;      
int day = 1;        
//需求:将2019 8 1组成 2019年8月1日      
char buf[64]="";      
int len = sprintf(buf,"%d年%d月%d日",year,mon,day);      
printf("len = %d\n", len);      
printf("%s\n", buf);        
//需求:小明:18:男:北京海淀区      
char name[]="小明";      
int age = 18;      
char sex[]="男";      
char addr[] ="北京海淀区";       
char buf2[128]="";      
len = sprintf(buf2,"%s:%d:%s:%s",name,age,sex,addr);      
printf("len = %d\n", len);      
printf("%s\n", buf2);        
//上线:版本号:块编号:主机名:用户名:功能:附加消息        
//使用sprintf将数值 转成 字符串      
char buf3[16]="";      
sprintf(buf3,"%d",128);      
printf("buf3=%s\n", buf3);  }  

在这里插入图片描述
二:sscanf 解包

在这里插入图片描述


void test01()  
{      
char msg[]="2019年8月2日";      
int year = 0;      
int mon = 0;      
int day = 0;        
//%d只能提取'0'~'9'      
sscanf(msg,"%d年%d月%d日",&year,&mon,&day);      
printf("year = %d\n",year);      
printf("mon = %d\n",mon);      
printf("day = %d\n",day);        
//%c 提取一个字符  %f提取浮点数      
char ch=0;      
sscanf(msg,"%c年", &ch);      
printf("ch = %c\n", ch);        
//%s 提取一个字符串 遇到空格、回车、'\0'就会停止获取      
char str_year[32]="";      
char str_mon[32]="";      
char str_day[32]="";      
//char msg[]="2019年8月2日";      
sscanf(msg,"%s年%s月%s日", str_year, str_mon,str_day );      
printf("str_year =%s\n", str_year);//2019年8月2日      
printf("str_mon =%s\n", str_mon);      
printf("str_day =%s\n", str_day);  }  

在这里插入图片描述
案例:sscanf 使用%*s或%*d
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路漫漫其远,吾求索

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值