是否可以C
设置从字符串输出的字符数?
char const *str = "abcdefgh";
printf("%???s", str);
应该放置什么而不是??? 输出abc
?
是的,您可以使用精度说明符,看起来像这样
printf("%.3s", str); // this prints "abc"
是的,你可以使用printf("%.3s" , str)
,或者printf("%.*s" , 3 , str);
printf
有以下定义:
int printf ( const char * format, ... );
格式说明符遵循此原型:
%[flags][width][.precision][length]specifier
您可以查看此处以获取有关这些说明符的概述。
.number
对于 s:这是要打印的最大字符数。默认情况下,所有字符都会打印,直到遇到结束的空字符。
但是,正如快乐黄脸所写的那样,printf("%.3s", str);
效果很好。
这个问题确实说“设置字符数”而不是“限制字符数”。
提出的 3 个解决方案是第二个。str
这在像“ab”这样小的时候很明显。
要将数字“设置”为 3,请使用
printf(">%3.3s<\n" , "abcdef");
printf(">%3.3s<\n" , "ab"); // right justify
printf(">%-3.3s<\n" , "ab"); // left justify
printf(">%*.*s<\n" , 3, 3, "ab"); // right justify
printf(">%*.*s<\n" , -3, 3, "ab"); // left justify
>abc<
> ab<
>ab <
> ab<
>ab <
>
<
添加仅用于显示目的。