How to print only certain parts of a string?
12,129
Solution 1
printf( "%.13s", labelOne ); // stops after thirteen characters.
printf( "%.3s", &labelOne[ 13 ] ); // prints three characters of the string that starts at offset 13
I'm noticing a possible fencepost error/inconsistency in your question or my answer, depending on your point of view. The correct answer for the second example may be:
printf( "%.3s", &labelOne[ 12 ] );
Solution 2
printf("Label-one: %.*s", 13, str);
printf("Label-two: %.*s", 2, str + 13);
@Bob's answer is also acceptable if these lengths are constant, but in case the lengths are determined at runtime, this is the best approach since it parametrises them.
Author by
Paul Manta
Updated on July 26, 2022Comments
-
Paul Manta almost 2 years
I have a string
const char[15]
and I want to print it like this:Label-one: characters [0,13)
Label-two: characters [13, 15)How can I print only certain parts of the string?
-
Blagovest Buyukliev over 12 yearsA small stylistic advice:
labelOne + 13
seems neater and more natural than&labelOne[13]
. -
Bob Kaufman over 12 years@Blagovest -- Force of habit I suppose. I've gone back and forth on the issue, and to your point, your format is much more common today. When I started developing in C lo these many years, the &str[ offset ] format seemed to be more commonplace.