由于本人水平有限,仅供参考!
完整代码如下:


#include<stdio.h>
#include<stdlib.h>
#include<string.h>int* getstrindex( char *,char *);
char* strreplace(char *str,char *oldword,char *newword);
int myfgets(char *s,unsigned int maxlen,FILE *fp);int main(int argc, char** argv){char s[512]="天上人间123,天上人间银河系456,天上人间789天上人间";char s1[128]="天上人间";char s2[128]="(已经替换)";puts("输入原字符串:");myfgets(s,sizeof(s),stdin);printf("\n");puts("输入要被替换掉的子字串:");myfgets(s1,sizeof(s1),stdin);printf("\n");puts("输入替代字串:");myfgets(s2,sizeof(s2),stdin);printf("\n");int *p=getstrindex(s,s1);printf("将要被替换的字串在原字串中位置索引分别是:\n");while(*p!=-1)printf("%d ",*p++);free(p);char *pstr=strreplace(s,s1,s2);printf("\n替换后的字串:\n%s\n",pstr);free(pstr);return 0;
}//去掉末尾的换行符
int myfgets(char *s,unsigned int maxlen,FILE *fp)
{fgets(s,maxlen,fp);char *p=strrchr(s,'\n');*p='\0';return 0;
}//在str字串中查找子字串,返回子字串所有索引
int* getstrindex( char *str, char *word)
{if(!str || !word)return NULL;int wlen=strlen(word);int llen=strlen(str);if(wlen>llen)return NULL;char *p0=str;char *p1=word;int *index=(int*)malloc(sizeof(int)*(llen+1));if(!index)return NULL;int i,flag=0,z=0;for(i=0;i<llen;i++){for(int j=i,k=0;j<i+wlen && k<wlen;j++,k++){if(*(p0+j)!=*(p1+k))break;else++flag;}if(flag==wlen){index[z++]=i;}flag=0;}index[z]=-1;return index;
}//在str字串中查找子字串把所有含oldword替换成newword
//返回处理后的字串
char* strreplace(char *str,char *oldword,char *newword)
{if(!str || !oldword || !newword)return NULL;int *pstr=getstrindex(str,oldword);if(!pstr)return NULL;char *p0=str;int slen=strlen(str);int olen=strlen(oldword);int nlen=strlen(newword);if(olen>slen)return NULL;int cou=0;for(;*(pstr+cou)!=-1;cou++);printf("\n共%d个\n",cou);char *newp=(char *)calloc( sizeof(char),(slen+1+cou*nlen-cou*olen));int k=0,j=0,flag=1;for(int i=0;*(p0+i)!='\0' ;i++){for(int z=0;*(pstr+z)!=-1 ;z++){if(i==*(pstr+z)){flag=0;break;}}if(flag){*(newp+k++)=*(p0+i);}else if(flag==0){i+=(olen-1);memcpy(newp+k,newword,nlen);k+=nlen;}flag=1;}*(newp+k)='\0';return newp;
}

C语言字符串批量查找批量替换相关推荐

  1. Linux批量查找与替换

    Linux批量查找并替换文件夹下所有文件的内容 经常要使用到 Linux的批量查找与替换,这里为大家介绍使用 sed 命令和 grep 命令的结合来实现查找文件中的内容并替换. 语法格式: sed - ...

  2. linux替换某个文件夹下所有文件,Linux 批量查找并替换文件夹下所有文件的内容...

    1.批量查找某个目下文件的包含的内容 cd etc grep -rn "查找的内容" ./ 2.批量替换某个目下所有包含的文件的内容 cd etc sed -i "s/查 ...

  3. PyCharm中批量查找及替换

    选中需要操作的字符 Ctrl + R 替换 Ctrl + Shift + F 全局查找 Ctrl + Shift + R 全局替换 源自: PyCharm中批量查找及替换 - Ella_Wu - 博客 ...

  4. c语言从文件查找字符串,C语言文件中字符串的查找与替换?

    C语言文件中字符串的查找与替换? #include #include #include #include int Count=0; int findNum(char *str) { int i=0,t ...

  5. C语言实现字符串的查找和替换

    常用字处理软件或者编辑器都提供字符串的查找和替换功能,本文描述如何借助C语言的字符串处理函数来实现字符串的查找和替换功能. 先说查找,字符串的查找主要使用strstr函数,其原型为:char * st ...

  6. python字符串之查找与替换_Python字符串操作(查找,替换,分割和连接)方法及其使用...

    str 提供了如下常用的执行查找.替换等操作的方法: startswith():判断字符串是否以指定子串开头. endswith():判断字符串是否以指定子串结尾. find():查找指定子串在字符串 ...

  7. Excel批量替换,多个excel文件批量查找和替换的绿色工具,Excel多个Sheet批量替换

    多个EXCEL怎么进行快速批量替换 如果我们有多个Excel文件,多个Sheet,需要进行多个文件多个关键字的批量替换,将每个关键字替换成对应的文字. 有一个在线免费工具,不需熟悉vba或者公式函数, ...

  8. xlsx如何查找替换_Excel如何批量查找和替换?

    每当提到Excel查找和替换,大家首先想到的就是Ctrl+F,Ctrl+H 这对小情侣. 大家真正了解这对情侣吗? 大家在平常使用过程中,有点击过[选项]按钮吗? 1.工作簿中查找"雷哥&q ...

  9. 串的查找和替换课程设计c语言,(串的查找和替换.doc

    (串的查找和替换 计算机工程学院 实 习 报 告 课程名称:算法设计技能训练 设计题目: 串的查找和替换 院 系: 计算机工程学院 专 业: 计算机科学与技术(单招) 学生姓名: 高苏生 学 号: 1 ...

  10. python字符串之查找与替换_在Python中查找和替换文本

    最简单的查找替换 在Python中查找和替换非常简单,如果当前对象是一个字符串str时,你可以使用该类型提供的find()或者index()方法查找指定的字符,如果能找到则会返回字符第一次出现的索引, ...

最新文章

  1. Web安全测试检查单
  2. 在Android Studio中有六种依赖
  3. stm32链接电脑提示无法识别的驱动设备
  4. JavaScript 读取CSV文件并转为js对象
  5. 业务知识——Logger日志打印规范
  6. 博通的“交钥匙”策略
  7. Leetcode 921. Minimum Add to Make Parentheses Valid
  8. c ++查找字符串_C ++朋友功能| 查找输出程序| 套装2
  9. python实训内容_Python实验课:Python元组数据及其运算
  10. 前端页面加水印插件_没用过这7款浏览器插件,你一定是假的程序员
  11. 远程服务器连接工具:Tmux
  12. 热血江湖游戏中断开服务器,为什么最近老是一进去游戏就提示与服务器断开 – 手机爱问...
  13. Jackson 电印迹-蛋白质转移丨膜的类型WB转移步骤要素
  14. 千万不要点开,Cjson入门快速使用看这篇就够了(CJSON入门操作以及问题讲解,CJSON对象删除出错)
  15. java nio wakeup_Java NIO 的 wakeup 剖析
  16. 致远oa系统unix 服务器,致远oa手机客户端服务器
  17. MySQL的主键,索引设置和添加
  18. 转:比谎言更可怕的,是对真相视而不见
  19. GIS-地理信息系统
  20. 机器学习笔记(3)——使用聚类分析算法对文本分类(分类数k未知)

热门文章

  1. lock_guard和unique_lock理解
  2. 软件测试之『接口自动化工具盘点』及『项目部署』
  3. php时间转成毫秒数,PHP中mktime时间转换成毫秒的方法
  4. 不是简单的换贴图,谈谈u3d的人物换装系统(仙剑demo整合换装系统)
  5. java和c++的区别_JAVA和C++区别详解
  6. 微软向小米出售1500项专利,建立长期合作伙伴关系
  7. 专业的创新创业服务平台盘点,想创业,选对平台很重要!
  8. 计算机考研注意事项,计算机考研:早期复习三大注意事项
  9. # Python3微博爬虫[requests+pyquery+selenium+mongodb]
  10. DuiLib教程--下载和生成