Замена текста в готовых шаблонов текста

Далее код для замены в готовых текстах - определенных кусков текста. Код довольно быстрый.

Замена производиться для комбинации $word_tag$, причем нормально обрабатывается $1000.
Размер выделяемой памяти, может быть указан принудительно, либо определяется автоматически (в случае нехватки - добавляется).

Вызов:
int v=patternProcessing(s_in,d,&out);
Где - s_in (char*) - указатель на шаблон, d - typedef map<string,string> map_as_hash, out - указатель на указатель (char**).

map_as_hash d;

Пример вызова:
char *how[5] = {"Скандальные","Ужастные","Информативные","Никакие","Прадничные"};
char *when[5] = {"Вчера","Сегодня","Месяц назад","Ровно год назад","В скором будующем"};
char *city_in[5] = {"Московском","местном","африканском","черном","сельском"};
char *where[5] = {"зоопарке","скотном дворе","доме культуры","цирке","государственном театре"};
char *postman[5] = {"служащего","учителя информатики","бухгалтера","машиниста","спикера"};
char *fio[5] = {"Иванов","Петров","Сидоров","Кузнецов","Копытин"};
char *doing[5] = {"плюнул","стукнул","ударил в область живота","подарил квартиру","напал и съел обед"};
char *kind[5] = {"злобный","веселый","добрый","тихий","мирный"};
char *how2[5] = {"достоверно","из третьих лиц","по слухам","из сводки КПСС","по мнению ООН"};
char *kind_fio[5] = {"был пьян","был трезв как стеклышко","умел разговаривать с собаками","ранее видел НЛО","покупал продукты на Черкизовском"};
char *why[5] = {"верблюд","бомж","турецкий султан","купец III гильдии","сами-знаете-кто"};

d["how"] = how[rand()%5];
d["when"] = when[rand()%5];
d["city_in"] = city_in[rand()%5];
d["where"] = where[rand()%5];
d["postman"] = postman[rand()%5];
d["fio"] = fio[rand()%5];
d["doing"] = doing[rand()%5];
d["kind"] = kind[rand()%5];
d["why"] = why[rand()%5];
d["how2"] = how2[rand()%5];
d["kind_fio"] = kind_fio[rand()%5];
d["baks"] = "1000000";

char *out;
int v=patternProcessing((char*)s.c_str(),d,&out,10);
printf("count replace - %d\n",v);
printf("output\n%s\n",out);
if (out) delete [] out;

Для шаблона:
$how$ новости дня.

$when$ в $city_in$ $where$ на $postman$ $fio$а $doing$ $kind$ $why$.
Дело передано в суд. Также, $how2$ известно, что $fio$ $kind_fio$.

Далее - про дело чекиста и $$baks$.

Вывод:

Скандальные новости дня.

Месяц назад в африканском доме культуры на бухгалтера Иванова ударил в область живота тихий купец III гильдии.
Дело передано в суд. Также, из сводки КПСС известно, что Иванов ранее видел НЛО.

Далее - про дело чекиста и $1000000.

или
Прадничные новости дня.

Ровно год назад в местном скотном дворе на учителя информатики Иванова плюнул злобный бомж.
Дело передано в суд. Также, из сводки КПСС известно, что Иванов покупал продукты на Черкизовском.

Далее - про дело чекиста и $1000000.

т.к. используется rand()

Скачать без регистрациии.