字符串替换(新开辟空间)
来源:互联网 发布:免费制作电子书软件 编辑:程序博客网 时间:2024/05/21 06:43
#include <iostream>
#include <string.h>
usingnamespace 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 = newchar[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;}
- 字符串替换(新开辟空间)
- 字符串下划线替换-不开辟新的内存
- 我来开辟新空间!
- 链表反转不开辟新空间
- opencv图像原地(不开辟新空间)顺时旋转90度
- 浅拷贝(在进行其中一个对象的运算时开辟新的空间)
- 图像翻正以及原地(不开辟新空间)顺时旋转90度问题
- 字符串替换算法(时间、空间效率)
- 字符串内容逆置(不能使用库函数只能开辟有限个空间)
- 字符串替换新单词
- N*N矩阵的旋转 不开辟新空间
- 不开辟新空间反转单链表(递归版本)
- 大数相加(不开辟额外空间)
- 批量将图像原地(不开辟新空间)顺时旋转90度保存以及灰度化
- 字符串或者数组的循环左移或右移(不开辟额外的空间存放中间值)
- 逆向工程核心原理学习笔记(六):实战开辟新内存区域写入缓冲区跳转修改字符串
- 逆向工程核心原理学习笔记(六):实战开辟新内存区域写入缓冲区跳转修改字符串
- 开辟2维空间
- 服务器问题故障排除一例
- 课堂小练习(指针问题)
- JS 中document.URL 和 windows.location.href 的区别
- eclipse中,新建文件时的编码问题
- ssh
- 字符串替换(新开辟空间)
- 关于eclipse调试(包括汇编显示)
- i718 触屏坏了,怎么解锁
- OpenCV中Mat与IplImage和CvMat类型之间的相互转换
- java引用自己本身
- Oracle左(外)、右(外)、全(外)、(内)连接语法与SQL标准的比较
- 怎么做随滚动条滚动而滚动的层
- 纠结!!!
- LD_LIBRARY_PATH的错误