自定义 printf() 中的字符串截断
查询:
是否可以控制使用 printf() 从字符串打印的字符数,类似于指定整数的小数位数?
考虑:
printf("这里是前 8 个字符: %sn", "超过 8 个字符的字符串");
预期输出:以下是前 8 个字符:一个字符串
解决方案:
实现此自定义的主要方法有两种:
方法 1:
printf("这是前 8 个字符:%.8sn" , "超过 8 个字符的字符串");
方法 2:
printf("这是前 %d 个字符: %.*sn" , 8, 8, "超过 8 个字符的字符串");
在第二种方法中,将整数参数传递给 printf(),指定长度。格式中的“*”提示 printf() 从随附参数中获取长度。
存在替代表示法:
printf("这里是前 8 个字符:%*. *sn", 8, 8, "超过 8 个字符的字符串");
此表示法类似于“%8.8s”格式,但允许动态指定最小和最大长度,尤其是在以下场景中很有用:
printf("Data: %*.*s Other info: %dn", minlen, maxlen, string, info);
printf() 的 POSIX 规范提供了这些机制的详细解释。
以上是如何在 printf() 中自定义字符串截断?的详细内容。更多信息请关注PHP中文网其他相关文章!