<sprintf>用法总结

本文详细解析了sprintf函数的使用方法,包括格式化数字字符串、连接字符串、打印地址信息等核心功能。并通过实例展示了如何利用该函数进行字符串操作,适用于C语言程序员深入理解sprintf的高级用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开门见山,直入主题

sprintf函数原型

int sprintf( char *buffer, const char *format [, argument] ... );

 

 1、格式化数字字符串

将一个整数转化至字符串数组中,见下例

1.1

 sprintf(str,"%d",1234);

 printf("十进制 %s\r\n", str);  //“1234”

1.2

//使用空格补齐
 
sprintf(str,"%2d",1234);  //指定宽度,不足的使用空格补

printf("十进制 %s\r\n", str);  //“  1234”
//左边补0 的等宽格式
 
sprintf(str,"%02d",1234);  //

printf("十进制 %s\r\n", str);  //“001234”

1.3

sprintf(str,"%-2d",1234);  //指定宽度,左对齐

printf("十进制 %s\r\n", str);  //“1234  ”

1.4

”%m.nf”格式含义:m代表指定宽度,n代表小数点取得位数

2、连接字符串

char* who = "I";
char* whom = "优快云";
sprintf(s, "%s love %s.", who, whom); //产生:"I love 优快云. "

char a1[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G'};
char a2[] = {'H', 'I', 'J', 'K', 'L', 'M', 'N'};
sprintf(s, "%.7s%.7s", a1, a2);      //产生:"ABCDEFGHIJKLMN"

 

3、打印地址信息

有时调试程序时,我们可能想查看某些变量或者成员的地址,由于地址或者指针也不过是个32 位的数,你完全可以使用打印无符号整数的”%u”把他们打印出来:

sprintf(s, "%u", &i);

不过通常人们还是喜欢使用16 进制而不是10 进制来显示一个地址:

sprintf(s, "%08X", &i);

然而,这些都是间接的方法,对于地址打印,sprintf 提供了专门的”%p”:

sprintf(s, "%p", &i);

我觉得它实际上就相当于:

sprintf(s, "%0*x", 2 * sizeof(void *), &i);

4、sprintf 的返回值

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值