sprintf函数

简介: sprintf函数

1.头文件:#include <stdio.h>

2.函数原型:int sprintf ( char * str, const char * format, ... )

3.函数功能:将数据格式化为字符串,再写入到字符串中

4.参数分析:

str:是字符串指针,指向需要被写入格式化数据的字符串

format:是格式化的数据

... :说明格式化的数据可以是多个

5.如何将数据格式化?

和 printf 函数一样,不同的数据类型有不同的格式化符号,如%d、%f、%c、%s……

x.y :x是为数据提供的宽度,y是数据实际占用宽度

(1)对于整型数据:%x.yd

如果数据本身宽度 < 实际占用宽度,缺少的宽度在数据左侧用0填充;

如果数据本身宽度 >= 实际要占用宽度,则实际占用宽度为数据本身宽度

(2)对于浮点型数据:%x.yf

x用于控制数据占用宽度,y用于控制浮点数小数个数

(3)对于字符型数据:%x.ys

x用于控制数据占用宽度,y用于控制输出字符个数

6.实例代码

(1)将整型数据格式化写入字符串

char arr[10];
int a = 123;
int b = 456;
sprintf(arr, "%d%d", a, b);
printf("%s\n", arr);//123456

(2)将浮点型数据格式化写入字符串

char arr[20];
float a = 3.14;
float b = 520.1314;
sprintf(arr, "%.2f %.4f", a, b);
printf("%s\n", arr);//3.14 520.1314

(3)将字符型数据格式化写入到字符串中(连接两个字符串)

char arr[20];
char* s1 = "abcdef";
char* s2 = "ghijklmn";
sprintf(arr, "%s%s", s1, s2);
printf("%s\n", arr);//abcdefghijklmn

7.sprintf函数使用注意事项

写入的字符串空间要足够大,否则会内存溢出

目录
相关文章
|
6月前
|
存储 Cloud Native Linux
C++ strcpy、sprintf与memcpy的区别
C++ strcpy、sprintf与memcpy的区别
|
10月前
strstr(str1,str2) 函数与sscanf()函数功能详解
strstr(str1,str2) 函数与sscanf()函数功能详解
|
11月前
sprintf用法
sprintf用法
107 0
|
12月前
|
存储
sprintf函数
sprintf函数
57 0
strcmp函数详解
如果字符串不一样,并且字符串1>字符串2,则返回值>0.相反返回值小于零。
252 0
atoi函数
atoi函数
119 0
itoa()函数与atoi()函数
1、itoa()函数(整型转字符) 以下是用itoa()函数将整数转换为字符串的一个例子: # include # include void main (void) { int num = 100; char str[...
1059 0
|
机器学习/深度学习
sprintf你知道多少(转)
第一个打出来的肯定不是正确结果,原因跟前面提到的一样,参数压栈时调用者并不知道跟i相对应的格式控制符是个”%f”。而函数执行时函数本身则并不知道当年被压入栈里的是个整数,于是可怜的保存整数i 的那4 个字节就被不由分说地强行作为浮点数格式来解释了,整个乱套了。
1147 0