Задача на языке С. За изящное решение - работа в международном стартапе.
Добавлено: 03 сен 2013, 14:42
ПРАВИЛА:
• Найдите идеальное решение до 31-Дек-13 и получите 550 долларов. Те, кто решил задачу оригинально, получит предложение о сотрудничестве с компанией Hola
• Если решение получилось хорошим (но не идеальным), мы вышлем вам некоторые комментарии, чтобы помочь сделать его совершенным. Решение со 2-го раза принесет вам 250 долларов Если вы передадите задачу тому, кто сможет ее решить, вы оба получите по 550 долларов.
Инструкция:
• Посмотрите на main(). Там вызываются различные функции. От вас требуется имплементировать str_cpy() и str_cat(). Функции str_printf() и str_free() имплементитовать не надо.
• Прочтите внимательно main(), чтобы понять прототип и использование str_cpy() и str_cat().
• Код, написанный вами, должен соответствовать по качеству библиотечному коду, как в хорошей имплементации libc.
• Обратите внимание на 4 заголовочных файла перед функцией main. Вы можете использовать функции, описанные в этих файлах, в своей реализации str_cpy() и str_cat().
• Отправьте решение задачи по адресу challengeru@hola.org .
• Замечание: эффективная реализация функций str_cpy и str_cat умещается в 7 строк кода на функцию.
• Найдите идеальное решение до 31-Дек-13 и получите 550 долларов. Те, кто решил задачу оригинально, получит предложение о сотрудничестве с компанией Hola
• Если решение получилось хорошим (но не идеальным), мы вышлем вам некоторые комментарии, чтобы помочь сделать его совершенным. Решение со 2-го раза принесет вам 250 долларов Если вы передадите задачу тому, кто сможет ее решить, вы оба получите по 550 долларов.
Инструкция:
• Посмотрите на main(). Там вызываются различные функции. От вас требуется имплементировать str_cpy() и str_cat(). Функции str_printf() и str_free() имплементитовать не надо.
• Прочтите внимательно main(), чтобы понять прототип и использование str_cpy() и str_cat().
• Код, написанный вами, должен соответствовать по качеству библиотечному коду, как в хорошей имплементации libc.
• Обратите внимание на 4 заголовочных файла перед функцией main. Вы можете использовать функции, описанные в этих файлах, в своей реализации str_cpy() и str_cat().
• Отправьте решение задачи по адресу challengeru@hola.org .
• Замечание: эффективная реализация функций str_cpy и str_cat умещается в 7 строк кода на функцию.
Код: Выделить всё
/* Copyright (C) Hola 2012, 2013
*
* Welcome to TheCodeIL.com Challenge!
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
int main(int argc, char *argv[])
{
char *s = NULL;
str_cpy(&s, "Hola Hola");
str_cpy(&s, s+5);
str_cat(&s, " World");
str_printf(&s, "%s!", s);
puts(s); /* result: "Hola World!" */
str_free(&s);
return 0;
}