用于改变`printf()` - C语言中的字符串输出的变量

时间:2016-05-12 15:11:02

标签: c string printf

在C中,据我所知,到目前为止,这是正确的:

printf("%10s\n", "This is C");  

将返回:

" This is C!"  

(字符串前面的有意空格;没有引号)。

我的问题是,您可以使用变量替换指定打印长度的10吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:1)

就是这样:

printf("%*s\n", 10, "This is C");

格式已从%10s更改为%*sprintf()现在期望在字符串之前的参数中,int的宽度用于填充字符串(上例中的10;显然也可以是变量)

要告诉printf()将输出填充到左侧(而不是默认右侧),请使用-%-*s。 (输出将从" This is C"更改为"This is C "。)

告诉printf()只从字符串中取出少量的第一个字节,或者如果字符串不是以空值终止的,则可以将.*添加到与精度相同的格式的格式中浮点类型。 printf()将打印到该字符数,并在第一个空字符处停止。例如:

int width = 10;
int chars = 4;
printf( "%-*.*s", width, chars, "This is C" );

会生成输出"This "

相关问题