En la biblioteca estándar de C, los nombres de encabezado terminan con un .h
sufijo:
stdio.h
En C ++, esos nombres de encabezado están disponibles en una forma alternativa, con un c
prefijo en su lugar:
cstdio
Escribe una función que convierta la primera forma en la segunda. Puede realizar la conversión en el lugar, o dejar la cadena original intacta y devolver una nueva cadena. Cualquier cosa que se sienta natural en su idioma de elección.
El código debe compilarse / interpretarse sin errores. Las advertencias del compilador son aceptables.
Aquí está su solución de línea de base C. Tiene 70 caracteres y genera una advertencia sobre strlen
:
void f(char*h){int i=strlen(h);h[--i]=0;while(--i)h[i]=h[i-1];*h='c';}
La solución más corta (medida en número de caracteres) gana.
Actualización: si su idioma de elección no admite funciones, también se aceptan programas completos.
Actualización: según lo sugerido por FUZxxl, aquí hay una lista completa de los archivos de encabezado en la biblioteca estándar de C:
assert.h
ctype.h
errno.h
float.h
limits.h
locale.h
math.h
setjmp.h
signal.h
stdarg.h
stddef.h
stdio.h
stdlib.h
string.h
time.h
Específicamente, no hay nombres de encabezado con múltiples puntos en ellos.