La forma básica es:
printf ("Here are the first 8 chars: %.8s\n", "A string that is more than 8 chars");
La otra, a menudo más útil, manera es:
printf ("Here are the first %d chars: %.*s\n", 8, 8, "A string that is more than 8 chars");
Aquí, se especifica la longitud como argumento int a printf(), que trata el '*' en el formato como una solicitud para obtener la longitud de un argumento.
También puede utilizar la notación:
printf ("Here are the first 8 chars: %*.*s\n",
8, 8, "A string that is more than 8 chars");
Esto también es análogo al "8%.8s notación", pero de nuevo le permite especificar la longitud mínima y máxima en tiempo de ejecución - de manera más realista en un escenario como:
printf("Data: %*.*s Other info: %d\n", minlen, maxlen, string, info);
Hasta el último ejemplo: ¿Qué pasa si la cadena copiada es más corta que minlen? – truthseeker
La salida estará acolchada en blanco (a la izquierda a menos que agregue un '-') para completarla hasta la longitud especificada completa. –