Маскирование пробелов в строке

Опубликовано Sep 30, 2011 в Массивы и строки | 3 коммент.


Реализуйте метод замены всех пробелов в строке s на подстроку“%20”.

char* replace_spaces(const char *s)
{
  //ваш код
}
1 Цель задания быстрая проверка простых навыков алгоритмического мышления и работы со строками в стиле С
2 Время выполнения 15 минут
3 Формат выполнения код пишется на компьютере/бумаге по желанию, без доступа к документации

Критерии оценки FulcrumWeb:

Кандидат должен продемонстрировать умение реализовывать элементарные алгоритмы и знания, как работать с C-строками.

Ожидаемые вопросы:

  1. Есть ли специальные требования к способу выделения памяти для новой строки? Годится ли аналогия с функциональностью стандартной char *strdup(const char *s)?
  2. Критично ли быстродействие?
  3. Планируется ли использование этой функции как библиотечной?
  4. В какой кодировке может быть задана исходная строка?

Оценка результатов:

Для начинающего программиста полное отсутствие вопросов простительно. Принимается любое работоспособное решение для ANSI строк. Очень хорошо, если будет озвучено, как должно происходить выделение и освобождение памяти под результирующую строку, иначе эти вопросы будут подняты.

От программиста с опытом работы мы ожидаем услышать вопросы, которые покажут понимание того, откуда у данной задачи “растут ноги”, в первую очередь – это маскирование поисковых URL. Реализация критичного к быстродействию решения для различных кодировок по сложности выходит за рамки офисного собеседования, но понимание подходов к нему можно продемонстрировать.