В стандартной библиотеке C имена заголовков заканчиваются .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
В частности, нет заголовков с несколькими точками в них.