Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: MHz   (16.10.2008 в 18:05)
В общем не знаю на сколько хорошо у меня получилось решить задачу, но вот что у меня получилось:


char* StrReplace (char* Search, char* Replace, char* Resource)
{
int SearchLen = strlen (Search);
int ReplaceLen = strlen (Search);

char* Pointer = strstr (Resource, Search);

while (Pointer != NULL)
{
int PointerLen = strlen (Pointer);
int ResourceLen = strlen (Resource);

char* NewText = (char*)calloc((ResourceLen - SearchLen + ResourceLen), sizeof(char));

strncpy (NewText, Resource, ResourceLen - PointerLen);
strcat (NewText, Replace);
strcat (NewText, Pointer + SearchLen);

Resource = (char*)realloc(Resource, (ResourceLen - SearchLen + ReplaceLen)*sizeof(char));

for (int i = 0; i < (ResourceLen - SearchLen + ReplaceLen); i++)
{
Resource[i] = NewText[i];
}

free (NewText);

Pointer = strstr (Resource, Search);
}

return Resource;
}


Вроде бы работает =) Но может быть будут какие нибудь замечания?


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: