http://www.kernelchina.org/?q=node/1000

在实际的应用开发过程中可能会需要处理非零结尾的字符序列或者要打印出部分字符串等等。如何抽取或者打印部分字符串呢?我们可能会想到拷贝一份或者取出单个字符打印。

其实标准C已经提供了格式化用的通配符“.*”用法如下:

例如printf(“name %.*s\n”, 6, “appleleaf”);

显示“applel”

又如sprintf(buffer, “%.*s    %.*s\n”, 6, name, 4, name);

格式化之后结果为“applel    appl”

是不是很方便:-)

使用printf(“name %.6s\n”,“appleleaf”);这样的形式也可以工作,但是”.*”通配符打印的长度是变量指定的,更加灵活。

这里“.*”表示精度,不仅用于字符串,例如也可以用于浮点数输出的格式化。

Advertisements