В 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);
Функция работает, только замените в параметрах «sub» на «orig», а то видимо автор переименовал переменную и забыл.
Спасибо за подсказку! Исправил.