[英]Printing formatted string in C
所以我有一個長度為10的字符串。我想要打印4-6 [包括兩者]的字母,我希望跨越特定長度L的輸出,數字位於右側。
例如
如果我有原始字符串123456789
,則以下代碼應以后續方式顯示。
printf(Original);
printf(from 4-6, over 5 spaces)
輸出:
123456789
456
那是456分布在5個空格並且向右縮進。
我怎么用C做?
編輯1:如果我的寬度不恆定怎么辦,並且我有一個變量,它決定了寬度。 類似地,子串的長度是變量。 現在有辦法嗎?
我能做點什么嗎
printf("%%d.%ds",width,precision,expression);
很直接:
printf("%5.3s\n", Original + 4);
^ ^
| |
| +--- precision, causes only 3 characters to be printed
|
+----- field width, sets total width of printed item
由於右側調整是默認值,因此您可以獲得所需的輸出。
精度“節省”我們不必將三個字符提取到一個正確終止的字符串中,非常方便。
通過將width指定為*
並傳遞int
參數,可以將動態值用於精度或字段寬度(當然也可以是兩者):
const int width = 5, precision = 3;
printf("%*.*s\n", width, precision, Original + 4);
#include <stdio.h>
int main(void)
{
char *original = "123456789";
printf("%5.3s\n", original + 3);
return 0;
}
編輯:
如果你想要一個基於變量的精度:
int prec = 2;
printf("%5.*s\n", prec, original + 3);
......寬度相同
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.