将字串格式化命令。sprintf 是个变参函数,使用时经常出问题,而且只要出问题通常就是能导致程序崩溃的内存访 问错误,但好在由sprintf 误用导致的问题虽然严重,却很容易找出,无非就是那么几种情况,通 常用眼睛再把出错的代码多看几眼就看出来了。
参数说明及应用举例
sprintf格式的规格如下所示。[]中的部分是可选的。
%[指定参数][标识符][宽度][.精度]指示符 若想输出`%'本身时, 请这样`%%'处理。
1. 处理字符方向。负号时表示从后向前处理。
2. 填空字元。 0 的话表示空格填 0;空格是内定值,表示空格就放着。
3. 字符总宽度。为最小宽度。
4. 精确度。指在小数点后的浮点数位数。
转换字符
%% 印出百分比符号,不转换。
%c 整数转成对应的 ASCII 字元。
%d 整数转成十进位。
%f 倍精确度数字转成浮点数。
%o 整数转成八进位。
%s 整数转成字符串。
%x 整数转成小写十六进位。
%X 整数转成大写十六进位。
<?
$money = 123.1
$formatted = sprintf ("%06.2f", $money); // 此时变数 $ formatted 值为 "123.10"
$formatted = sprintf ("%08.2f", $money); // 此时变数 $ formatted 值为 "00123.10"
$formatted = sprintf ("%-08.2f", $money); // 此时变数
$ formatted 值为 "123.1000"
$formatted = sprintf ("%.2f%%", 0.95 * 100); // 格式化为百分比
?>
¢%08.2f 解释:
%开始符
0是 "填空字元" 表示,如果长度不足时就用0来填满。
8格式化后总长度
2f小数位长度,即2位
¢第3行值为"00123.10" 解释: 因为2f是(2位)+小数点符号(1)+前面123(3位)=6位,总长度为8位,故前面用[填空字元]0表示,即00123.10
¢第4行值为"123.1000" 解释:
-号为反向操作,然后填空字元0添加在最后面了
分享到:
相关推荐
本文对嵌入式开发领域中常用的sprintf函数进行了详细的介绍,刚入此行不甚了解的同学可以下载来看看学习一下
本文详细介绍了C语言中的sprintf函数,对其原理、功能和应用进行全面介绍,适合于那些对该函数不太了解的同学
本文详细介绍了sprintf函数在嵌入式开发领域中的原理和应用,对该函数不太了解的同学可以下载来看看
本文详细介绍了sprintf函数的原理和功能,对其应用进行了详细介绍,适合那些对该函数不太了解的同学
本文主要总结了sprintf函数的用法,希望对你的学习有所帮助。
sprintf函数详细介绍
sprintf函数的详细介绍,里面详细介绍了sprintf 的基本用法,非常适合初学者。
c语言sprintf函数.pdf
在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直 接在命令行上输出。这也导致sprintf 比...
Sprintf函数的用法.pdf
本文实例讲述了PHP中sprintf函数的用法。分享给大家供大家参考。具体用法分析如下: sprintf()函数在php官方是说把字符串格式化输出了,本文就来给各位朋友介绍一下在学习sprintf()函数时的一些经验分享,希望能给大家...
c语言sprintf函数[定义].pdf
sprintf函数的用法[参考].pdf
sprintf函数的用法[借鉴].pdf
嵌入式开发经常遇到要在屏幕输出的问题,这个函数可以帮忙
本文实例讲述了基于JS实现PHP的sprintf函数。分享给大家供大家参考,具体如下: 函数如下: [removed] function sprintf() { var arg = arguments, str = arg[0] || '', i, n; for (i = 1, n = arg.length; i &...
简介:主要针对解决小容量MCU flash ram有限,使用标准springf函数占用空间过大,莫名堆栈溢出问题.函数仅支持16位无符号整形和字符串的转换,如果要转换float型,请使用额外提供的 将float转换为字符串的函数。文件...
printf 可能是许多程序员在开始学习C语言时接触到的 第二个函数(我猜第一个是main),说起来,自然是老朋友了,可是,你对这个老朋友了解多吗?...sprintf是个变参函数,定义如下:int sprintf( char *buffer, cons
重新封装sprintf,适用于小容量单片机,解决调用C库sprintf函数后rom不够的问题。