sprintf 组包 sscanf解包

简介: 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);  }  


20200328211759956.png


二:sscanf 解包


20200328212221881.png


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);  }  


20200328212931164.png


案例:sscanf 使用%*s或%*d


20200328213339277.png


20200328213404541.png

相关文章
|
8月前
|
消息中间件 Kubernetes NoSQL
简述strcpy、sprintf、memcpy
简述strcpy、sprintf、memcpy
|
8月前
|
C语言
字符串函数`strlen`、`strcpy`、`strcmp`、`strstr`、`strcat`的使用以及模拟实现
字符串函数`strlen`、`strcpy`、`strcmp`、`strstr`、`strcat`的使用以及模拟实现
151 1
|
3月前
|
存储
strcpy、sprintf 与 memcpy 的区别
在 C 语言中,`strcpy`、`sprintf` 和 `memcpy` 是三个用于处理内存和字符串的函数,它们有不同的用途和特点
|
3月前
解析与模拟常用字符串函数strcpy,strcat,strcmp,strstr(一)
解析与模拟常用字符串函数strcpy,strcat,strcmp,strstr(一)
49 0
|
7月前
|
C语言
【C语言】:浅谈函数 fscanf/sscanf 和 fprintf/sprintf
【C语言】:浅谈函数 fscanf/sscanf 和 fprintf/sprintf
97 1
|
存储 Cloud Native Linux
C++ strcpy、sprintf与memcpy的区别
C++ strcpy、sprintf与memcpy的区别
|
8月前
|
Java 编译器 C语言
深入了解字符(串)函数 -- -- 字符(串)函数的实现(strlen、strcpy、strcmp、strcat、strstr、)内存函数的实现(memcpy、memmove)
深入了解字符(串)函数 -- -- 字符(串)函数的实现(strlen、strcpy、strcmp、strcat、strstr、)内存函数的实现(memcpy、memmove)
54 0
C实现字符操作函数,strcpy, strcat, strcmp, memcpy
C实现字符操作函数,strcpy, strcat, strcmp, memcpy
65 0
|
C语言
自己实现strcpy和strlen函数
自己实现strcpy和strlen函数
104 0
|
8月前
|
C语言
深入理解字符串函数和字符函数(islower和isupper、tolower和toupper、strlen、strcpy、strcat、strcmp)(一)
深入理解字符串函数和字符函数(islower和isupper、tolower和toupper、strlen、strcpy、strcat、strcmp)(一)