2014-10-11 1339 views
6

是否有任何方法可以打印一定數量的空白字符?打印n個空格字符 - (f)printf格式

我無法使用分鐘。寬度的空白填充"\"%-5s\"",因爲它會導致對"str "...,我需要輸出"str" ...

我知道我能做到一個愚蠢的方法:

int len = strlen (str); 

printf ("/"%s/"", str); 
for (int i = len - 5; i > 0; i--) 
    printf (" "); 

但是我會很感激更有效的解決方法。

+1

正是我需要的!太謝謝你了。 請,出任答案。 – notnull 2014-10-11 10:44:39

回答

9

嘗試

printf ("%*c\"%s\"%*c", leading, ' ', str, trailing, ' '); 

哪裏開頭和結尾是int類型。
對於僅使用尾隨

printf ("\"%s\"%*c", str, trailing, ' '); 

類似的修飾可用於引導僅

EDIT
的寬度說明允許使用一個星號,以提供可變寬度製成。
在這種情況下,%* c告訴printf獲取下一個參數並將其用作字符的寬度。
它最初讀取前導,並將其用於打印字符的字段的寬度,即空格字符。然後打印一個報價,「%s」格式打印下一個參數str,打印另一個報價,然後%c讀取尾部作爲打印下一個參數的字段的寬度,即另一個空格字符。

+0

上如何工作將是很好的解釋,我只是在隨機字符盯着現在 – Darkhogg 2014-10-11 11:44:03

+0

。是的,謝謝! – Darkhogg 2014-10-11 12:21:49