1sprintf函数原型: int sprintf( char *buffer, const char *format ,[ argument,...] );函数功能:把格式化的数据写入某个缓冲区中 返回值:字符串长度(strlen)参数说明: 前两个参数固定,buffer是字符数组名;format是格式化字符串; 可选参数可以是任意个。
2sprintf函数举例1:# include int main(void) { char str[512]; int len = sprintf(str, '%s world!', 'hello'); printf('%s\nlen=%d\n', str,len); system('pause'); return 0; } 这个例子演示将指定字符串赋值给字符数组str,虽然数据参数为“hello”,但格式字符串参数为“%s world!”,所以输出结果为“hello world!”,字符串长度为12
3sprintf函数举例2:# include int main(void) { char str[512]; char str1[] = 'Get'; char str2[] = 'it!'; int len = sprintf(str, '%s %s', str1,str2); printf('%s\nlen=%d\n', str,len); system('pause'); return 0; } 这个例子演示sprintf函数如何进行字符串拼接。这里格式字符串参数为“%s %s”,即将字符串“Get”和“it!”连接成“Get it!”赋给了一维数组str,所以输出结果为“Get it!”,字符串长度为7
4sprintf函数举例3:# include int main(void) { char str[512]; double f = 14.309948; int len = sprintf(str, '%3.2f', f); printf('%s\nlen=%d\n', str,len); system('pause'); return 0; } 这个例子演示sprintf函数控制精度为0.01,将浮点数f以字符串形式赋值给数组str,因为格式化字符串为“%3.2f”,即保留小数点后两位,所以输出结果为“14.30”,字符串长度为5
5sprintf函数举例4:# include int main(void) { char str[512]; int i = 1; int len = sprintf(str, '0X%p',&i); printf('%s\nlen=%d\n', str,len); system('pause'); return 0; } 这个例子演示使用sprintf函数获取一个变量的内存地址,并以十六进制打印出来,由于这个程序是32位程序,所以打印的内存地址只有32位。以0XAAAAAAAA形式显示,长度为10,如果是64位程序,长度为18
6sprintf函数举例5:# include int main(void) { char str[512]; char s1[] = { 'A','B','C' }; char s2[] = { 'T','Y','x' }; int len = sprintf(str, '%*.*s%.*s',4, 2, s1, 1, s2); printf('%s\nlen=%d\n', str,len); system('pause'); return 0; }这个例子相对复杂一点,演示sprintf函数如何动态赋值,这里补充一下:sprintf(str,'%*.*s',x,y,string);**s对应x,y,string,表示从string里取n个字符,然后在str的前头加上x-y个空格.若x>y,则不加空格。若x不写,即“%.*s”,则x=y。所以这个例子的输出结果为“ ABT”,长度为5