在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中了.

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里

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