美文网首页
sprintf / sscanf 数字转化为各种进制字符串

sprintf / sscanf 数字转化为各种进制字符串

作者: Aikesi26 | 来源:发表于2018-08-07 17:54 被阅读104次

在ios开发蓝牙的时候, 难免会和自定的协议打交道, 校验什么的,就会遇到各种数据类型之间的转换 记录c语言中非常好用的2个函数, 可以快速将数字转化为16进制或者各种进制的字符串, 可以将格式字符串转化为数字.

C语言中常见的printf函数和scanf函数, 但是今天要用的是sprintf函数和sscanf函数, 是不是比较像, 前者是标准函数, 将内容输出到控制台, 今天要用的函数 是将内容输出到字符串.

1 sprintf函数

头文件:stdio.h

函数功能:格式化字符串,将格式化的数据写入字符串中。

函数原型:int sprintf(char *buffer, const char *format, [argument]...)

参数:

(1)buffer:是char类型的指针,指向写入的字符串指针;

(2)format:格式化字符串,即在程序中想要的格式;

(3)argument:可选参数,可以为任意类型的数据;

函数返回值:buffer指向的字符串的长度;
第二个参数可以控制字符串格式, 和OC的拼接字符串差不多. 这样直接可以将16进制的3456写道test中了.

10进制转换16进制字符串

2 sscanf 快速将16进制字符串转化为int类型.

int sscanf( const char *, const char *, ...);
int sscanf(const char *buffer,const char *format,[argument ]...);
buffer存储的数据
format格式控制字符串
argument选择性设定字符串
sscanf会从buffer里读进数据,依照format的格式将数据写入到argument里

Snip20180807_5.png

这只是这两个函数的简单用发, 也可以和正则配合使用, 有时间可以再研究.

相关文章

网友评论

      本文标题:sprintf / sscanf 数字转化为各种进制字符串

      本文链接:https://www.haomeiwen.com/subject/bvvavftx.html