大家好,天天来为大家解答以上问题。sprintf函数用法举例,sprintf函数用法详解很多人还不知道,现在让我们一起来看看吧!
1、 Sprintf函数原型:
2、 intsprintf(char*buffer,constchar*format,[argument,]);
3、 功能:将格式化的数据写入缓冲区。
4、 返回值:字符串长度(strlen)
5、 参数描述:
6、 前两个参数是固定的,buffer是字符数组名;是格式字符串;
7、 可选参数可以是任何数字。
8、 sprintf函数1的示例:
9、 #includesto.h
10、 intmain(void)
11、 {
12、 charstr[512];
13、 intlen=sprintf(str,' %sworld!',‘你好’);
14、 printf('%slen=%d ',str,len);
15、 系统(“暂停”);
16、 return0
17、 }
18、 这个例子演示了如何将指定的字符串赋值给字符数组str。虽然数据参数是“hello”,但格式字符串参数是“%sworld!”,所以输出结果是“helloworld!”,字符串长度为12。
19、 sprintf函数2的示例:
20、 #includesto.h
21、 intmain(void)
22、 {
23、 charstr[512];
24、 charstr 1[]=' Get ';
25、 charstr2[]='it!';
26、 intlen=sprintf(str,' %s%s ',str1,str 2);
27、 printf('%slen=%d ',str,len);
28、 系统(“暂停”);
29、 return0
30、 }
31、 这个例子演示了sprintf函数如何拼接字符串。这里的格式字符串参数是" %s%s ",即字符串" Get "和" it!"连接到“Getit!”给定一个一维数组str,输出结果是“Getit!”,字符串长度为7。
32、 sprintf函数3的示例:
33、 #includesto.h
34、 intmain(void)
35、 {
36、 charstr[512];
37、 doublef=14.309948
38、 intlen=sprintf(str,' %3.2f ',f);
39、 printf('%slen=%d ',str,len);
40、 系统(“暂停”);
41、 return0
42、 }
43、 这个例子演示了sprintf函数的控制精度是0.01,浮点数F以字符串的形式赋给数组str。因为格式化后的字符串是“%3.2f”,即保留了两位小数,所以输出结果为“14.30”,字符串长度为5。
44、 sprintf函数4的示例:
45、 #includesto.h
46、 intmain(void)
47、 {
48、 charstr[512];
49、 inti=1;
50、 intlen=sprintf(str,' 0X%p ',I);
51、 printf('%slen=%d ',str,len);
52、 系统(“暂停”);
53、 return0
54、 }
55、 这个例子演示了如何使用sprintf函数获取一个变量的内存地址并以十六进制输出。因为这个程序是32位程序,所以打印出来的内存地址只有32位。它以0XAAAAAAAA的形式显示,长度为10,如果是64位程序则为18。
56、 sprintf函数5的示例:
57、 #includesto.h
58、 intmain(void)
59、 {
60、 charstr[512];
61、 chars1[]={'A ',' B ',' C ' };
62、 chars2[]={'T ',' Y ',' x ' };
63、 intlen=sprintf(str,' %*。*s%。*s ',4,2,s1,1,S2);
64、 printf('%slen=%d ',str,len);
65、 系统(“暂停”);
66、 return0
67、 }
68、 这个例子相对复杂,演示了sprintf函数如何动态赋值。这里有一个补充:
69、 sprintf(str,' %*。*s ',x,y,string);
70、 **s对应x,y,string,意思是从string中取n个字符,然后在str前面加上x-y空格。
71、 如果xy,则不添加空格。
72、 如果不写x,就是“%”。*s”,那么x=y。
73、 所以这个例子的输出结果是长度为5的“ABT”。
本文到此结束,希望对大家有所帮助。
标签: