这可以用 printf 实现吗?
Is this possible with printf?
我知道,对于超大字符串,您可以打印出前几个字符:
printf(".5s\n",string);
对于过小的字符串,您可以用 space:
填充它
printf("% 5s\n",string);
有没有办法同时实现这两个目标?即,如果它很短,则用 0 或 space 填充它,如果它很长,则将其截断?
是的,你可以将它组合成这样:
printf("%5.5s\n", string);
因此,如果您的字符串为 1,则输出为:
1
//^ 4 Spaces here
如果你的字符串是 123456,输出是:
12345
//^ 6 doesn't get displayed
另请参阅有关 printf()
的更多信息并作为参考,请参阅此 link:http://www.cplusplus.com/reference/cstdio/printf/
我知道,对于超大字符串,您可以打印出前几个字符:
printf(".5s\n",string);
对于过小的字符串,您可以用 space:
填充它printf("% 5s\n",string);
有没有办法同时实现这两个目标?即,如果它很短,则用 0 或 space 填充它,如果它很长,则将其截断?
是的,你可以将它组合成这样:
printf("%5.5s\n", string);
因此,如果您的字符串为 1,则输出为:
1
//^ 4 Spaces here
如果你的字符串是 123456,输出是:
12345
//^ 6 doesn't get displayed
另请参阅有关 printf()
的更多信息并作为参考,请参阅此 link:http://www.cplusplus.com/reference/cstdio/printf/