2011-10-20 58 views
7

我有一個字符串const char[15],我想打印這樣的:如何只打印字符串的某些部分?

標籤一:字符[0,13)
標籤二:字符[13,15)

如何僅打印字符串的某些部分?

+0

http://stackoverflow.com/questions/256218/the-simplest-way-of-printing-a-portion-of-a-char-in-c –

回答

8
printf("%.13s", labelOne); // stops after thirteen characters. 
printf("%.3s", &labelOne[ 13 ]); // prints three characters of the string that starts at offset 13 

根據您的觀點,我注意到您的問題或答案中可能出現的fencepost錯誤/不一致。用於第二實施例中的正確答案可以是:

printf("%.3s", &labelOne[ 12 ]); 
+3

一個小的文體建議:'labelOne + 13'好像整潔,比'&labelOne [13]'更自然。 –

+0

@Blagovest - 我想的習慣的力量。我在這個問題上反覆討論,就你而言,你的格式今天更加普遍。當我在C多年開始開發時,&str [offset]格式似乎更常見。 –

13
printf("Label-one: %.*s", 13, str); 
printf("Label-two: %.*s", 2, str + 13); 

@ Bob的答案也是可以接受的,如果這些長度是恆定的,但在殼體的長度是在運行時確定的,這是最好的方法,因爲它parametrises他們。

相關問題