Ben bir dize const char[15]
var ve böyle yazdırmak istiyorum:Dizenin yalnızca belirli bölümleri nasıl yazdırılır?
Etiket-one: karakter [0,13)
Etiket-iki: karakter [13, 15)
Dizenin yalnızca belirli bölümlerini nasıl yazdırabilirim?
Ben bir dize const char[15]
var ve böyle yazdırmak istiyorum:Dizenin yalnızca belirli bölümleri nasıl yazdırılır?
Etiket-one: karakter [0,13)
Etiket-iki: karakter [13, 15)
Dizenin yalnızca belirli bölümlerini nasıl yazdırabilirim?
printf("%.13s", labelOne); // stops after thirteen characters.
printf("%.3s", &labelOne[ 13 ]); // prints three characters of the string that starts at offset 13
Ben sizin bakış bağlı olarak sorunuzun ya da benim cevap olası bir fencepost hata/tutarsızlığı fark ediyorum. İkinci örnek için doğru cevap olabilir: bu parametrises çünkü bu uzunluklar, sabit ise
printf("%.3s", &labelOne[ 12 ]);
Bob yanıt @
Küçük bir stilistik tavsiye: 'labelOne + 13' gibi görünüyor & ve labelOne [13] 'den daha doğal ve daha doğal. –
@Blagovest - Alışkanlık gücünün herhalde. Konuyla ilgili ileri geri gittim ve sizin amacınıza göre, bugün sizin formatınız çok daha yaygın. C yıllarında bu gelişmeye başladığımda, & str [offset] formatı daha sık göründü. –
printf("Label-one: %.*s", 13, str);
printf("Label-two: %.*s", 2, str + 13);
da kabul edilebilir, ama durumda uzunlukları zamanında tespit edilir, bu en iyi yaklaşım onlar.
http://stackoverflow.com/questions/256218/the-simplest-way-of-printing-a-portion-of-a-char-in-c –