Как напечатать только определенные части строки? - PullRequest
7 голосов
/ 21 октября 2011

У меня есть строка const char[15], и я хочу напечатать ее так:

Метка-один: символов [0,13)
Две метки: символов [13, 15)

Как я могу напечатать только определенные части строки?

Ответы [ 2 ]

15 голосов
/ 21 октября 2011
printf("Label-one: %.*s", 13, str);
printf("Label-two: %.*s", 2, str + 13);

@ Ответ Боба также приемлем, если эти длины постоянны, но в случае, если длины определены во время выполнения, это лучший подход, поскольку он параметризует их.

8 голосов
/ 21 октября 2011
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 ] ); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...