深入理解php printf() 输出格式化的字符串

php printf() 函数用于输出格式化的字符串,本文章向码农介绍php printf()函数的使用方法和基本使用实例,感兴趣的码农可以参考一下。

定义和用法

printf() 函数输出格式化的字符串。

arg1、arg2、arg++ 参数将被插入到主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个 % 符号处,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。

注释:如果 % 符号多于 arg 参数,则您必须使用占位符。占位符被插入到 % 符号之后,由数字和 "\$" 组成。请参见例子 2。

提示:相关函数:sprintf()、 vprintf()、 vsprintf()、 fprintf() 和 vfprintf()

•fprintf()
•sprintf()
•vfprintf()
•vprintf()
•vsprintf()

语法

printf(format,arg1,arg2,arg++)
参数 描述 format

必需。规定字符串以及如何格式化其中的变量。

可能的格式值:

%% - 返回一个百分号 % %b - 二进制数 %c - ASCII 值对应的字符 %d - 包含正负号的十进制数(负数、0、正数) %e - 使用小写的科学计数法(例如 1.2e+2) %E - 使用大写的科学计数法(例如 1.2E+2) %u - 不包含正负号的十进制数(大于等于 0) %f - 浮点数(本地设置) %F - 浮点数(非本地设置) %g - 较短的 %e 和 %f %G - 较短的 %E 和 %f %o - 八进制数 %s - 字符串 %x - 十六进制数(小写字母) %X - 十六进制数(大写字母)

附加的格式值。必需放置在 % 和字母之间(例如 %.2f):

+ (在数字前面加上 + 或 - 来定义数字的正负性。默认地,只有负数做标记,正数不做标记) ' (规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。) - (左调整变量值) [0-9] (规定变量值的最小宽度) .[0-9] (规定小数位数或最大字符串长度)

注释:如果使用多个上述的格式值,它们必须按照上面的顺序进行使用,不能打乱。

arg1 必需。规定插到 format 字符串中第一个 % 符号处的参数。 arg2 必需。规定插到 format 字符串中第二个 % 符号处的参数。 arg++ 可选。规定插到 format 字符串中第三、四等等 % 符号处的参数。

技术细节

返回值: 返回被输出字符串的长度。 PHP 版本: 4+

实例

例子 1

使用格式值 %f:

<?php $number = 123; printf("%f",$number); ?>

例子 2

使用占位符:

<?php $number = 123; printf("有两位小数:%1\$.2f<br>没有小数:%1\$u",$number); ?>

例子 3

所有可能的格式值的演示:

<?php $num1 = 123456789; $num2 = -123456789; $char = 50; // ASCII 字符 50 是 2 // 注释:格式值 "%%" 返回百分号 printf("%%b = %b <br>",$num1); // 二进制数 printf("%%c = %c <br>",$char); // ASCII 字符 printf("%%d = %d <br>",$num1); // 带符号的十进制数 printf("%%d = %d <br>",$num2); // 带符号的十进制数 printf("%%e = %e <br>",$num1); // 科学计数法(小写) printf("%%E = %E <br>",$num1); // 科学计数法(大写) printf("%%u = %u <br>",$num1); // 不带符号的十进制数(正) printf("%%u = %u <br>",$num2); // 不带符号的十进制数(负) printf("%%f = %f <br>",$num1); // 浮点数(视本地设置) printf("%%F = %F <br>",$num1); // 浮点数(不视本地设置) printf("%%g = %g <br>",$num1); // 短于 %e 和 %f printf("%%G = %G <br>",$num1); // 短于 %E 和 %f printf("%%o = %o <br>",$num1); // 八进制数 printf("%%s = %s <br>",$num1); // 字符串 printf("%%x = %x <br>",$num1); // 十六进制数(小写) printf("%%X = %X <br>",$num1); // 十六进制数(大写) printf("%%+d = %+d <br>",$num1); // 符号说明符(正) printf("%%+d = %+d <br>",$num2); // 符号说明符(负) ?>

例子 4

字符串说明符的演示:

<?php $str1 = "Hello"; $str2 = "Hello world!"; printf("[%s]<br>",$str1); printf("[%8s]<br>",$str1); printf("[%-8s]<br>",$str1); printf("[%08s]<br>",$str1); printf("[%'*8s]<br>",$str1); printf("[%8.8s]<br>",$str2); ?>

以上这篇深入理解php printf() 输出格式化的字符串就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

时间: 2024-09-20 22:46:05

深入理解php printf() 输出格式化的字符串的相关文章

深入理解php printf() 输出格式化的字符串_php实例

php printf() 函数用于输出格式化的字符串,本文章向码农介绍php printf()函数的使用方法和基本使用实例,感兴趣的码农可以参考一下. 定义和用法 printf() 函数输出格式化的字符串. arg1.arg2.arg++ 参数将被插入到主字符串中的百分号(%)符号处.该函数是逐步执行的.在第一个 % 符号处,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推. 注释:如果 % 符号多于 arg 参数,则您必须使用占位符.占位符被插入到 % 符号之后,由数字和 "\$

c语言关于printf输出字符串以及scanf的一些问题

问题描述 c语言关于printf输出字符串以及scanf的一些问题 代码一 #include <stdio.h> char ch1[] = {'a', 'b', 'c'}; char ch2[] = "abc"; int main(void) { printf("String ch1 is: %sn", ch1); printf("String ch2 is: %sn", ch2); return 0; } 代码二 #include

编写高质量代码改善C#程序的157个建议[为类型输出格式化字符串、实现浅拷贝和深拷贝、用dynamic来优化反射]

原文:编写高质量代码改善C#程序的157个建议[为类型输出格式化字符串.实现浅拷贝和深拷贝.用dynamic来优化反射] 前言 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html .本文主要学习记录以下内容: 建议13.为类型输出格式化字符串 建议14.正确实现浅拷贝和深拷贝 建议15.使用dynamic来简化反射实现 建议13.为类型输出格式化字符串   有两种方法可以为类型提供格式化的字符串输出. 一种是意识到类型会产生格式化字符串输出,于是

《C语言程序设计:问题与求解方法》——2.11节数据输出—格式化输出函数 printf()的用法

2.11 数据输出-格式化输出函数 printf()的用法 变量的值如果不从内存单元中取出来,通过输出设备送到计算机的外部,这个值对外界就不起任何作用,程序本身的运行也就失去了意义. 1.变量值的输出 格式化输出库函数printf()用来在某些常用的输出设备(PC的显示器或打印机)上输出双引号括住的格式控制串中的字符序列. 但是,printf()不仅可以像例题2.3那样,将格式串中的字符序列按照原样输出,还可以通过格式串的设置和控制,输出n个(n≥1)变量的值,其格式为:printf("占位符1

详解C语言中printf输出的相关函数_C 语言

C语言printf()函数:格式化输出函数printf()函数是最常用的格式化输出函数,其原型为: int printf( char * format, ... ); printf()会根据参数 format 字符串来转换并格式化数据,然后将结果输出到标准输出设备(显示器),直到出现字符串结束('\0')为止. 参数 format 字符串可包含下列三种字符类型: 一般文本,将会直接输出 ASCII 控制字符,如\t.\n 等有特定含义 格式转换字符 格式转换为一个百分比符号(%)及其后的格式字符

深入剖析PHP中printf()函数格式化使用

printf()函数优点在于可以格式化输出! printf的格式控制的完整格式: % - 0 m.n l或h 格式字符 下面对组成格式说明的各项加以说明: ①%:表示格式说明的起始符号,不可缺少. ②-:有-表示左对齐输出,如省略表示右对齐输出. ③0:有0表示指定空位填0,如省略表示指定空位不填. ④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数.N指精度.用于说明输出的实型数的小数位数.为指定n时,隐含的精度为n=6位. ⑤l或h:l对整型指long型,对实型指double型.h用

c语言-关于整型数组中数字使用printf输出的问题

问题描述 关于整型数组中数字使用printf输出的问题 #include int main(void) { int number[40]; scanf("%s", number); printf("%d", number[0]); return 0; } 数字以字符格式存在数组里,既然字符以数字的形式存储,那为何用%d输出是垃圾值呢?用%c却是正常的 解决方案 字符格式和整型是不同的,字符0对应着48,字符1对应着整数49.... 解决方案二: 字符'0',对应0x

c-double类型的数据printf输出,当值很大时的输出问题

问题描述 double类型的数据printf输出,当值很大时的输出问题 double a=11111*11111;doube b=111111111*111111111;double c=11个1*11个1; 三者输出如下:为什么会这样?同时,对于int型也有下面的结果:不是非常理解.希望能够得到解答,谢谢!! 解决方案 因为你直接写整数.那么它的乘法其实是整数乘法,最后转换为double而整数乘法溢出了. doube b=(double)111111111*(double)111111111;

《C语言解惑》—— 2.1 printf输出的小奥妙

2.1 printf输出的小奥妙 需要注意printf输出字符串时,"\n"之前和之后的空格含义不同,前面的空格没有影响,即如下两条语句 printf ("Hardness=%d \n",2); printf ("Hardness=%d\n ",2); 的输出是对齐的.而下面两条语句 printf ("Hardness=%d\n ",2); printf ("Hardness=%d\n ",2); 的输出是