У стандартній бібліотеці С назви заголовків закінчуються .h
суфіксом:
stdio.h
У C ++ ці імена заголовків доступні в альтернативній формі, а c
замість них префікс:
cstdio
Напишіть функцію, яка перетворює першу форму в другу. Ви можете зробити перетворення на місці, або залишити початковий рядок неушкодженим і повернути новий рядок. Якими б природними не були ваші мови на вибір.
Код повинен бути складений / інтерпретований без помилок. Попередження компілятора прийнятні.
Ось ваше базове рішення C. Він містить 70 символів і генерує попередження про strlen
:
void f(char*h){int i=strlen(h);h[--i]=0;while(--i)h[i]=h[i-1];*h='c';}
Виграє найкоротше рішення (вимірюється кількістю символів).
Оновлення: Якщо ваша обрана мова не підтримує функції, прийнятні також цілі програми.
Оновлення: Як запропонував FUZxxl, ось повний список файлів заголовків у стандартній бібліотеці 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
Зокрема, немає назв заголовків із кількома крапками.