据我所知,使用超大字符串,您可以打印出前几个字符:
printf(".5s\n",string);
Run Code Online (Sandbox Code Playgroud)
并且使用小尺寸字符串,您可以用空格填充它:
printf("% 5s\n",string);
Run Code Online (Sandbox Code Playgroud)
有没有办法同时实现这两个目标?即如果它很短,请用0或空格填充它,如果它很长则截断它?
Riz*_*123 11
是的,你可以把它结合到这个:
printf("%5.5s\n", string);
Run Code Online (Sandbox Code Playgroud)
因此,如果您的字符串为1,则输出为:
1
//^ 4 Spaces here
Run Code Online (Sandbox Code Playgroud)
如果您的字符串是123456,则输出为:
12345
//^ 6 doesn't get displayed
Run Code Online (Sandbox Code Playgroud)
有关更多信息printf()和参考,请参阅此链接:http://www.cplusplus.com/reference/cstdio/printf/