C语言实现字符串替换
#include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <string.h> char* ReplaceSubStr(const char* str, const char* srcSubStr, const char* dstSubStr, char* out) { char *p; char *_out = out; const char *_str = str; const char *_src = srcSubStr; const char *_dst = dstSubStr; int src_size = strlen(_src); int dst_size = strlen(_dst); int len = 0; do { p = strstr(_str, _src); if(p == 0) { strcpy(_out, _str); return out; } len = p - _str; memcpy(_out, _str, len); memcpy(_out + len, _dst, dst_size); _str = p + src_size; _out = _out + len + dst_size; } while(p); return out; } int main() { char str[1024]; char srcSubStr[1024]; char dstSubStr[1024]; char out[1024]; gets(str); gets(srcSubStr); gets(dstSubStr); ReplaceSubStr(str, srcSubStr, dstSubStr, out); printf("%s\n", out); return 0; }