#include <iostream>
#include <string.h>
using
namespace std;
char* replace_my(char* str,
char c,
const char* rc)
// 调用函数前,保证str能展开空间
{ char* ret
= str;
char* cp
= str; size_t cnt
= 0;
int rcsize
= (int)strlen(rc);
while (*cp) {
if (*cp
== c)
cnt++;
// 统计找到 c 的次数
++cp;
}
if (cnt
<= 0)
// 没找到 c
return ret; cp
= str;
int bufsize
= strlen(str)
+ rcsize * cnt
+ 1;
char
* buf
= new
char[bufsize];
// 建立缓冲区buf
char * ps
= buf;
while (*cp) {
*ps
= *cp;
if (*cp
== c) {
// 替换字符 c 为字符串 rc
memcpy(ps, rc, rcsize); ps += (rcsize-1);
}
++cp;
++ps; }
*ps =
'\0';
// 封闭缓冲区buf
strcpy(str , buf); delete[] buf;
return ret;}
int main()
{ char str[1024];
strcpy(str, "abcdefgabcdefgcccac");
cout << str
<< endl; replace_my(str,
'c',
" <cccccccccccccccccccccccc>
");
cout << str
<< endl
<< endl;
return 0;}