2011-10-20 18 views
7

私は、文字列const char[15]を持っていると私はこのようにそれを印刷したい:文字列の特定の部分だけを印刷する方法は?

ラベル-1:文字[0.13)
ラベル-2:文字[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 

私はあなたの視点に応じて、あなたの質問または私の答えに虚偽の可能性があることに気付いています。第二の例の正しい答えは次のようになります。

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

小文字のアドバイス:「labelOne + 13」のようです'&labelOne [13]'より自然で、より自然です。 –

+0

@Blagovest - 私が推測する習慣の力。私はこの問題について前後に行ってきましたが、現時点ではあなたのフォーマットはもっと一般的です。私がこれらの長年に亘って開発を始めたとき、&str [offset]形式はより一般的なようでした。 –

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

ボブの答えはこれらの長さが一定の場合にも可能ですが、場合には長さが実行時に決定され、それがparametrisesので、これは最良の方法であります@それら。