Est-il possible d'imprimer uniquement les 5 derniers octets de cette chaîne ?
Oui, il suffit de passer un pointeur sur l'avant-dernier caractère. Vous pouvez le déterminer par string + strlen(string) - 5
.
Qu'en est-il des 5 premiers octets seulement ?
Utilisez un spécificateur de précision : %.5s
#include <stdio.h>
#include <string.h>
char* string = "Hello, how are you?";
int main() {
/* print at most the first five characters (safe to use on short strings) */
printf("(%.5s)\n", string);
/* print last five characters (dangerous on short strings) */
printf("(%s)\n", string + strlen(string) - 5);
int n = 3;
/* print at most first three characters (safe) */
printf("(%.*s)\n", n, string);
/* print last three characters (dangerous on short strings) */
printf("(%s)\n", string + strlen(string) - n);
return 0;
}