str_replace для C

В PHP есть очень хорошая функция str_replace, заменяющая в строке одну подстроку в другой. Чистый C (да и C++) такой функцией похвастать не может.
Вот самопальный аналог str_replace для C.

char *str_replace(char *orig, char *rep, char *str)
{
 static char buffer[4096];
 char *p;
 if(! (p = strstr(str, orig)))
 return str;
 strncpy(buffer, str, p - str);
 buffer[p - str] = '\0';
 sprintf(buffer + (p - str), "%s%s", rep, p + strlen(orig));
 return buffer;
}

Использовать также, как и в PHP:

str = str_replace("substring", "replacement", str);

Поблагодарить автора

2 Responses to str_replace для C

  1. Функция работает, только замените в параметрах «sub» на «orig», а то видимо автор переименовал переменную и забыл. :lol:

Оставить комментарий

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>