Nella libreria standard C, i nomi delle intestazioni terminano con un .h
suffisso:
stdio.h
In C ++, questi nomi di intestazione sono disponibili in una forma alternativa, con un c
prefisso invece:
cstdio
Scrivi una funzione che converte il primo modulo nel secondo. È possibile eseguire la conversione sul posto oppure lasciare intatta la stringa originale e restituire una nuova stringa. Qualunque cosa sembri naturale nella tua lingua preferita.
Il codice deve essere compilato / interpretato senza errori. Gli avvisi del compilatore sono accettabili.
Ecco la tua soluzione di base C. Ha 70 caratteri e genera un avviso relativo a strlen
:
void f(char*h){int i=strlen(h);h[--i]=0;while(--i)h[i]=h[i-1];*h='c';}
Vince la soluzione più breve (misurata in numero di caratteri).
Aggiornamento: se la lingua scelta non supporta le funzioni, sono accettabili anche interi programmi.
Aggiornamento: come suggerito da FUZxxl, ecco un elenco completo dei file di intestazione nella libreria standard 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
In particolare, non ci sono nomi di intestazione con più punti al loro interno.