1

是否可以C设置从字符串输出的字符数?

char const *str = "abcdefgh";
printf("%???s", str);

应该放置什么而不是??? 输出abc

4

4 回答 4

6

是的,您可以使用精度说明符,看起来像这样

printf("%.3s", str); // this prints "abc"
于 2013-09-25T13:33:07.117 回答
3

是的,你可以使用printf("%.3s" , str),或者printf("%.*s" , 3 , str);

于 2013-09-25T13:37:03.467 回答
2

printf有以下定义:

int printf ( const char * format, ... );

格式说明符遵循此原型:

%[flags][width][.precision][length]specifier

您可以查看此处以获取有关这些说明符的概述。

.number

对于 s:这是要打印的最大字符数。默认情况下,所有字符都会打印,直到遇到结束的空字符。

但是,正如快乐黄脸所写的那样,printf("%.3s", str);效果很好。

于 2013-09-25T13:40:00.093 回答
1

这个问题确实说“设置字符数”而不是“限制字符数”。

提出的 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 <

> <添加仅用于显示目的。

于 2013-09-25T14:46:45.770 回答