注意:字符串长度可自行定义;可以增加字符串长度判断,防止溢出。
// 方法一 int replace(char *src,char *old,char *new) { char buff[2048]; //转换缓冲区 memset(buff,0,sizeof(buff)); for(int i = 0;i < strlen(src);i++){ //查找目标字符串 if( !strncmp( src+i , old , strlen(old) ) ){ // 比对old成功,将new放入buff中 strcat(buff,new); // 跳过old字符串 i += strlen(old) - 1; }else{ // 将未比对成功的存在buff中 strncat(buff,src + i,1); } } // 将buff赋值给src strcpy(src,buff); return 0; } // 方法二 int replace(char *src,char *old,char *new) { char *p = NULL; int len = 0; char newstr[2048] = {0}; // 查找src中old的位置 p = strstr(src,old); while(p){ // 循环查找old,直至查询不到 memset(newstr,0x0,sizeof(newstr)); // src首位到old位置的长度 len = p - src; // 将old前面的字符串复制到newstr中 strncpy(newstr,src,len); // 将new拼接到newstr中 strcat(newstr,new); // 将old后面的字符串复制到newstr中 strcat(newstr,p+strlen(old)); // 将newstr赋值给src strcpy(src,newstr); // 再次查找src中old的位置 p = strstr(src,old); } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)