指定使用 printf() 打印的字符数
问题出现了:printf() 中是否有一种机制允许指定要从字符串中打印的字符数?人们可以将其与指定整数中的小数位进行比较。例如:
printf ("Here are the first 8 chars: %s\n", "A string that is more than 8 chars");
理想情况下,此行应输出:
Here are the first 8 chars: A string
解决方案
有两种主要方法可以实现此目的C.
方法 1:基本方法
printf ("Here are the first 8 chars: %.8s\n", "A string that is more than 8 chars");
方法 2:多功能方法
printf ("Here are the first %d chars: %.*s\n", 8, 8, "A string that is more than 8 chars");
在此方法中,长度作为 int 参数提供给 printf() 。格式中的“*”被解释为从参数中检索长度的请求。
扩展表示法
可以使用另一种表示法:
printf ("Here are the first 8 chars: %*.*s\n", 8, 8, "A string that is more than 8 chars");
类似于“%8.8s”,此表示法还可以在运行时指定最小和最大长度。这在以下场景中特别有用:
printf("Data: %*.*s Other info: %d\n", minlen, maxlen, string, info);
printf() 的 POSIX 规范提供了这些机制的详细说明。
以上是如何使用 printf() 指定要从字符串打印的字符数?的详细内容。更多信息请关注PHP中文网其他相关文章!