Mam ciąg const char[15]
i chcę wydrukować go tak:Jak wydrukować tylko niektóre części napisu?
Label-on: znaków [0,13)
Label dwa: znaków [13, 15)
Jak mogę wydrukować tylko niektóre części napisu?
Mam ciąg const char[15]
i chcę wydrukować go tak:Jak wydrukować tylko niektóre części napisu?
Label-on: znaków [0,13)
Label dwa: znaków [13, 15)
Jak mogę wydrukować tylko niektóre części napisu?
printf("%.13s", labelOne); // stops after thirteen characters.
printf("%.3s", &labelOne[ 13 ]); // prints three characters of the string that starts at offset 13
Zauważyłem możliwy błąd/niezgodność ze słupem ogrodzeniowym w pytaniu lub mojej odpowiedzi, w zależności od twojego punktu widzenia. Prawidłowa odpowiedź na drugi przykład mogą być:
printf("%.3s", &labelOne[ 12 ]);
Mała rada stylistyczna: 'labelOne + 13' wydaje się bardziej naturalny i bardziej naturalny niż '& labelOne [13]'. –
@Blagovest - Przypuszczam, że siła przyzwyczajenia. Wracam do tej kwestii i do twojego punktu, twój format jest dziś znacznie bardziej powszechny. Kiedy zacząłem rozwijać się przez te wszystkie lata, format & str [offset] wydawał się bardziej powszechny. –
printf("Label-one: %.*s", 13, str);
printf("Label-two: %.*s", 2, str + 13);
@ odpowiedź Boba jest również dopuszczalne, jeżeli te odcinki są stałe, ale w przypadku długości są określane w czasie wykonywania, jest to najlepsze podejście, ponieważ parametrises im.
http://stackoverflow.com/questions/256218/the-simplest-way-printing-a-portion-of-a-char-in-c –