char* ReplaceSubStr(const char* str, const char* srcSubStr, const char* dstSubStr,char * out) {     /* 基本思路:迭代,然后使用双指针跟踪目标地址,和原地址,有点归并排序中合的味道。 注意:python、C++、Java中都有相应比较方便的库,但是本题就是想考察造轮子的过程,但是 可以使用C语言的库。 */ int i;     const char * ptr_str;     char * ptr_out=out;     for (i=0; i<strlen(str);) {         if ((ptr_str = strstr(str + i, srcSubStr)) == NULL) {             memcpy(ptr_out, str+i,strlen(str + i)+1);             break;         }         else {             memcpy(ptr_out, str + i, ptr_str - (str + i));             ptr_out += ptr_str - (str + i);             memcpy(ptr_out, dstSubStr, strlen(dstSubStr));             ptr_out += strlen(dstSubStr);             i = ptr_str - str + strlen(srcSubStr);         }     }     return out; }
点赞 评论

相关推荐

牛客网
牛客企业服务