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

相关文章
|
9月前
|
C语言
字符串函数`strlen`、`strcpy`、`strcmp`、`strstr`、`strcat`的使用以及模拟实现
字符串函数`strlen`、`strcpy`、`strcmp`、`strstr`、`strcat`的使用以及模拟实现
166 1
|
4月前
|
存储
strcpy、sprintf 与 memcpy 的区别
在 C 语言中,`strcpy`、`sprintf` 和 `memcpy` 是三个用于处理内存和字符串的函数,它们有不同的用途和特点
|
4月前
|
存储
底层文件操作的各种函数(二)------printf,fprintf,sprintf,scanf,fscanf,sscanf的对比以及文件缓冲区
底层文件操作的各种函数(二)------printf,fprintf,sprintf,scanf,fscanf,sscanf的对比以及文件缓冲区
74 2
|
4月前
解析与模拟常用字符串函数strcpy,strcat,strcmp,strstr(一)
解析与模拟常用字符串函数strcpy,strcat,strcmp,strstr(一)
70 0
|
8月前
|
C语言
【C语言】:浅谈函数 fscanf/sscanf 和 fprintf/sprintf
【C语言】:浅谈函数 fscanf/sscanf 和 fprintf/sprintf
120 1
|
8月前
|
安全 编译器 C语言
C语言学习记录——字符串相关函数及部分模拟(strcmp、strncmp、strncat、strncpy、strstr、strtok、strerror)
C语言学习记录——字符串相关函数及部分模拟(strcmp、strncmp、strncat、strncpy、strstr、strtok、strerror)
69 1
|
存储 Cloud Native Linux
C++ strcpy、sprintf与memcpy的区别
C++ strcpy、sprintf与memcpy的区别
C实现字符操作函数,strcpy, strcat, strcmp, memcpy
C实现字符操作函数,strcpy, strcat, strcmp, memcpy
69 0
|
9月前
|
数据格式
sprintf函数
sprintf函数
113 0
|
C语言
【C语言】scanf/fscanf/sscanf和printf/fprintf/sprintf的详细介绍
【C语言】scanf/fscanf/sscanf和printf/fprintf/sprintf的详细介绍