無論 str 的長度是短還是長,我都想列印一個正好有 20 個字符的字串。現在我正在使用:
printf(" s:",r->str);
如果字串太長,這不會縮短字串,但會正確添加填充。怎樣才能做到這一點?
uj5u.com熱心網友回復:
您需要字串的printf寬度和精度格式修飾符。
您已經熟悉寬度修飾符 ,%Ns其中N是要消耗的最小欄位。精度修飾符(是的,語法類似于浮點精度修飾符)確定要消耗的最大字符數。%.Ms,其中M是要消耗的最大字符數。還有錢的問題,你能同時使用嗎?是的你可以:%N.Ms
#include <stdio.h>
int main()
{
char str[] = "1234567890";
printf("%5.5s\n", str);
}
輸出
12345
*請注意,可以通過使用 a而不是固定寬度來動態設定其中一個/兩個,并將動態長度作為printf引數串列中的前導引數提供。一個(誠然無聊的)示例如下所示:
#include <stdio.h>
int main()
{
char str[] = "1234567890";
for (int i=2; i<=5; i)
{
for (int j=2; j<=5; j)
printf("%%%d.%%%d : %*.*s\n", i, j, i, j, str);
}
}
輸出
%2.%2 : 12
%2.%3 : 123
%2.%4 : 1234
%2.%5 : 12345
%3.%2 : 12
%3.%3 : 123
%3.%4 : 1234
%3.%5 : 12345
%4.%2 : 12
%4.%3 : 123
%4.%4 : 1234
%4.%5 : 12345
%5.%2 : 12
%5.%3 : 123
%5.%4 : 1234
%5.%5 : 12345
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/456468.html
上一篇:C、如何正確使用退出碼?
