c语言sprintf
⑴ 关于C语言sprintf函数
本函数与printf()基本一致,但输出结果写入字符串中 例:将"test 1 2"写入数组s中 #include int main(void) { char s[40]; sprintf(s,"%s%d%c","test",1,'2'); /*第一个参数就是指向要写入的那个字符串的指针,剩下的就和printf()一样了 你可以比较一下,这是向屏幕输入 printf("%s%d%c","test",1,'2'); */ return 0; }
⑵ C语言中sprintf这个函数怎么来用
sprintf和printf的用法类似,它用于格式化输出到特定的存储地
char
a[10];
sprintf(a,"%s","Hello
World");
上面就是把Hello
World存入a字符数组中
⑶ C语言sprintf怎么使用
sprintf函数的功能是把格式化的数据写入某个字符串缓冲区。
int sprintf( char *buffer, const char *format, [ argument] … );
buffer:char型指针,指向将要写入的字符串的缓冲区。
format:格式化字符串。
[argument]...:可选参数,可以是任何类型的数据。
示例
intmain()
{
charbuffer[50];//大小50的char字符数组
intn,a=5,b=3;//
n=sprintf(buffer,"%d+%d=%d",a,b,a+b);//把a,b,a+b以第二个参数的形式写入buffer
printf("[%s]isastring%dcharslong ",buffer,n);/*“格式输出函数”*/
return0;
}
输出结果[5 + 3 = 8] is a string 13 chars long
sprintf格式的规格如下所示。[]中的部分是可选的。
%[指定参数][标识符][宽度][.精度]指示符
若想输出'%'本身时, 请使用'%%'处理。
1. 处理字符方向。负号时表示从后向前处理。
2. 填空字符。 0 的话表示空格填 0;空格是内定值,表示空格就放着。
3.字符总宽度。为最小宽度。
4. 精确度。指在小数点后的浮点数位数。
转换字符
%% 印出百分比符号,不转换。
%c 整数转成对应的 ASCII 字符。
%d 整数转成十进位。
%f 倍精确度数字转成浮点数。
%o 整数转成八进位。
%s 整数转成字符串。
%x 整数转成小写十六进位。
%X 整数转成大写十六进位。
⑷ sprintf()函数的用法
sprintf 是个变参函数,定义如下:
int sprintf( char *buffer, const char *format [, argument] ... );
除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:格式化字符串上。
printf 和sprintf 都使用格式化字符串来指定串的格式,在格式串内部使用一些以“%”开头的格式说明符(format specifications)来占据一个位置,在后边的变参列表中提供相应的变量,最终
函数就会用相应位置的变量来替代那个说明符,产生一个调用者想要的字符串。
sprintf的第一个参数是目的字符串
sprintf指的是字符串格式化命令,函数声明为 int sprintf(char *string, char *format [,argument,...]);,主要功能是把格式化的数据写入某个字符串中,即发送格式化输出到 string 所指向的字符串。
使用sprintf 对于写入buffer的字符数是没有限制的,这就存在了buffer溢出的可能性。解决这个问题,可以考虑使用snprintf函数,该函数可对写入字符数做出限制。
⑸ C语言sprintf
首先,printf("xxx %d",n);意思是把 “”里面的值输出到屏蔽中,
然后, sprintf(s,"xxx %d",n); 就是把 “”里面的值输出到s中。
对应的还有sscanf;
scanf("%d",&n); 意思就是从键盘接受数据存入n,
sscanf(s,"%d",&n); 意思就是从s中接受数据存入n。
⑹ C语言sprintf怎么使用
可以这么考虑!函数功能:把格式化的数据写入某个字符串
头文件:stdio.h函数原型:intsprintf(char*buffer,constchar*format,[argument]…);参数列表:buffer:char型指针,指向欲写入的字符串地址。
format:char型指针,指向的内存里面存放了格式字符串。
[argument]...:可选参数,可以是任何类型的数据。
返回值:字符串长度(strlen)
相关函数:intsprintf_s(char*buffer,size_tsizeOfBuffer,constchar*format,[argument]...);
int_sprintf_s_l(char*buffer,size_tsizeOfBuffer,constchar*format,locale_tlocale,[argument]...);
intswprintf_s(wchar_t*buffer,size_tsizeOfBuffer,constwchar_t*format,[argument]...);
int_swprintf_s_l(wchar_t*buffer,size_tsizeOfBuffer,constwchar_t*format,locale_tlocale,[argument]…);
template
intsprintf_s(char(&buffer)[size],constchar*format,[argument]...);//仅存在于C++
template
intswprintf_s(wchar_t(&buffer)[size],constwchar_t*format,[argument]...);//仅存在于C++
编辑本段参数说明及应用举例sprintf格式的规格如下所示。[]中的部分是可选的。
%[指定参数][标识符][宽度][.精度]指示符
若想输出`%'本身时,请这样`%%'处理。
1.处理字符方向。负号时表示从后向前处理。
2.填空字符。0的话表示空格填0;空格是内定值,表示空格就放着。
3.字符总宽度。为最小宽度。
4.精确度。指在小数点后的浮点数位数。
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
转换字符=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
%%印出百分比符号,不转换。
%c整数转成对应的ASCII字符。
%d整数转成十进位。
%f倍精确度数字转成浮点数。
%o整数转成八进位。
%s整数转成字符串。
%x整数转成小写十六进位。
%X整数转成大写十六进位。
⑺ C语言,sprintf函数
通常是用来按照一定的格式,给字符窜赋值的,
像char
buf[100]
=
{0};
char
s1[10]
=
"hello
world";
char
s2[10]
=
"Tom";
sprintf(buf,"zifuchuan
is
%s,he
int
%s",,s1,s2);
printf("buf
=
[%s]",buf);//输出是,也就是buf变成"zifuchuan
is
helloworld
,he
int
Tom"
同样适合一些
int
类型,
int
int1=
10
像sprintf(buf,"%s,%s,%d",s1,s2,int1);
这样得出的字符串是"hellowolrd
Tom
10"
这样可以么?