最近碰到了sprintf函数,之前也遇到了,也用了,但也仅限于套过来用一下,今天又碰到了就打算稍微看下,纯属个人理解。
sprintf函数原型如下:
int sprintf(char* buffer,char* WriteTobuffer,...);
第一个输入参数buffer是要写入的目标字符缓冲区,第二个输入参数WriteTobuffer将要被写入到目标字符缓冲区的字符指针,以及后面的变输入参数也是一样,都是要写入到buffer里面的指针,注意都是字符型指针;
返回值是写入buffer的字符数;
结合下面的例子就很清楚了。
#include "stdio.h"
void main(void)
{
char cmdbuff[80];
char num[] = "10086";//这里要定义成字符型,因为sprintf的输入参数类型就是char型的
int re_sprin = 0;
/*sprintf原型:int sprintf(char* buffer,char* WriteTobuffer,...),返回值为写入buffer的字符数*/
re_sprin = sprintf(cmdbuff,"AT+CMGS= \"%s\" \r\n",num);//sprintf的妙用,实现字符与字符的拼接,双引号的输出形式为:\" "\
printf("%s \r\n",cmdbuff);
printf("%d \r\n\r\n",re_sprin);
}
下面是调试结果:
sprintf函数最主要的用途就是将数据转换成字符串,另外,从上面可以看出,sprintf还可以拼接字符,以及计算字符数。网上还有其他的输出十进制、十六进制以及对齐的作用,这个可以等要用到的时候再查。
最后,就是注意后面参数要写入到第一个参数的总字符大小的问题,小心出现内存泄露的问题。