#include <string.h>
#include <stdio.h>
void replace(const char* str, char* result, const char* sep,
const char* replace_what, const char* replace_with)
{
result[0] = '\0';
while(*str != '\0') {
size_t len
= strspn(str
, sep
); str += len;
if(strncmp(str
, replace_what
, len
) == 0) else
str += len;
}
}
int main()
{
char origin[] = "a1aaa1a";
char result[100];
char replace_what[] = "a";
char replace_with[] = "b";
char tok[] = "123";
replace(origin, result, tok, replace_what, replace_with);
return 0;
}
I2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8c3RkaW8uaD4KCnZvaWQgcmVwbGFjZShjb25zdCBjaGFyKiBzdHIsIGNoYXIqIHJlc3VsdCwgY29uc3QgY2hhciogc2VwLAogICAgICAgICAgICAgY29uc3QgY2hhciogcmVwbGFjZV93aGF0LCBjb25zdCBjaGFyKiByZXBsYWNlX3dpdGgpCnsKICAgIHJlc3VsdFswXSA9ICdcMCc7CiAgICB3aGlsZSgqc3RyICE9ICdcMCcpIHsKICAgICAgICBzaXplX3QgbGVuID0gc3Ryc3BuKHN0ciwgc2VwKTsKICAgICAgICBzdHJuY2F0KHJlc3VsdCwgc3RyLCBsZW4pOwogICAgICAgIHN0ciArPSBsZW47CgogICAgICAgIGxlbiA9IHN0cmNzcG4oc3RyLCBzZXApOwogICAgICAgIGlmKHN0cm5jbXAoc3RyLCByZXBsYWNlX3doYXQsIGxlbikgPT0gMCkKICAgICAgICAgICAgc3RyY2F0KHJlc3VsdCwgcmVwbGFjZV93aXRoKTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIHN0cm5jYXQocmVzdWx0LCBzdHIsIGxlbik7CiAgICAgICAgc3RyICs9IGxlbjsKICAgIH0KfQoKaW50IG1haW4oKQp7CiAgICBjaGFyIG9yaWdpbltdID0gImExYWFhMWEiOwogICAgY2hhciByZXN1bHRbMTAwXTsKICAgIGNoYXIgcmVwbGFjZV93aGF0W10gPSAiYSI7CiAgICBjaGFyIHJlcGxhY2Vfd2l0aFtdID0gImIiOwogICAgY2hhciB0b2tbXSA9ICIxMjMiOwogICAgcmVwbGFjZShvcmlnaW4sIHJlc3VsdCwgdG9rLCByZXBsYWNlX3doYXQsIHJlcGxhY2Vfd2l0aCk7CiAgICBwcmludGYoIiVzIiwgcmVzdWx0KTsKICAgIHJldHVybiAwOwp9