这个程序主要用于替换指定字符串,较为简单。

#include <stdio.h>
void change(char *,char *,char *);
int ju(char *,char *,int);
void deal(char *,char *,char *,int);
int main()
{
char a[80],b[80],c[80];
printf("请输入原字符串\n");
gets(a);
printf("请输入要替换的字符串\n");
gets(b);
printf("替换为\n");
gets(c);
change(a,b,c);
printf("替换后为\n");
puts(a);
}
void change(char *a,char *b,char *c)
{
int i;
for(i=0;a[i]!='\0';i++)
{
if(a[i]==b[0])
{
if(ju(a,b,i))
{
deal(a,b,c,i);
}
}
}
}
int ju(char *a,char *del,int i)
{
int j;
for(j=0;del[j]!='\0';j++)
{
if(a[i+j]!=del[j]) return 0;
}
return 1;
}
void deal(char *a,char *b,char *c,int i)
{
int j;
int lenc,lenb,lena;
for(lenc=0;c[lenc]!='\0';lenc++);
for(lenb=0;b[lenb]!='\0';lenb++);
for(lena=0;a[lena]!='\0';lena++);
if(lenc>lenb)
{
for(j=lena+(lenc-lenb);j>(i+lenc-lenb);j--)
{
a[j]=a[j-lenc+lenb];
}
}
else
{
for(j=i+lenc;j<lena+lenc-lenb;j++)
{
a[j]=a[j-lenc+lenb];
}
a[j]='\0';
}
for(j=i;j<lenc+i;j++)
{
a[j]=c[j-i];
}
}

其中主要要注意的 是判断要替换的长度 与 替换的字符串长度的关系 并分开判断。

Project 5:替换指定字符串的更多相关文章

  1. PHP替换指定字符串

    在PHP中,有两个函数可以实现字符串替换,strtr()和str_repalce()函数. 首先我们简单了解下strtr()函数的定义及语法. strtr:转换指定字符. 两个语法: 第一种语法: s ...

  2. javascript中通过replace函数搜索和替换指定字符串

    javascript中我们可以通过replace函数替换部分字符串为指定字符串,本文展示了replace的详细用法,并且通过范例演示了如何进行部分替换.完整替换和不区分大小写替换. javascrip ...

  3. c++ string替换指定字符串

    string fnd = "dataset"; string rep = "labels"; string buf = "d:/data/datase ...

  4. mysql批量替换指定字符串

    将字段title中的abc替换为123 UPDATE `table1` SET `title` = replace(title, 'abc', '123') WHERE `typeid` =18;

  5. js替换指定字符串

    // var a = "212"; // var b = []; // for(var i=0;i<a.length;i++){ // if(a[i]=="1&qu ...

  6. Java遍历目录下全部文件并替换指定字符串

    应用场景:比方有一个深层次的文件目录结构,如:javaAPI 每一个文件中面都有同样的内容,而我们要统一改动为其它内容.上千个文件假设一个个改动显得太不明智. import java.io.Buffe ...

  7. replace() MySQL批量替换指定字段字符串

    mysql replace实例说明: UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def'); REPLACE(str,from_str,to_str) 在字符串 st ...

  8. 用变量替换指定的字符串,sed: -e 表达式 #1, 字符 29: “s”的未知选项

    在shell脚本里,使用sed,然后用变量替换指定的字符串,一直出现这个错误:但是单独运行在外面可以 把分隔符/替换成#就可以: sed "s#revision=.*#revision=$s ...

  9. mysql函数之七:replace() MySQL批量替换指定字段字符串

    mysql replace实例说明: UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def'); REPLACE(str,from_str,to_str) 在字符串 st ...

随机推荐

  1. 最短路之Bellman-Ford算法

    说明: Dijkstra算法是处理单源最短路径的有效算法,但它局限于边的权值非负的情况,若图中出现权值为负的边,Dijkstra算法就会失效,求出的最短路径就可能是错的. 这时候,就需要使用其他的算法 ...

  2. 倒水问题(Fill,UVA 10603) lrj白书 p202

    看着lrj的代码自己敲了一遍,还没调试成功.... 有时间再进行完善 /* 状态start到各个状态u1,u2,u3..... 的倒水量分别为u1.dist,u2.dist,u3.dist.... * ...

  3. 关于Python3中venv虚拟环境

    Python3.3以上的版本通过venv模块原生支持虚拟环境,可以代替Python之前的virtualenv. 该venv模块提供了创建轻量级"虚拟环境",提供与系统Python的 ...

  4. HashMap遍历和使用

    map的几种遍历方式: Map< String, String> map = new HashMap<>(); map.put("aa", "@s ...

  5. 将SpringMVC中的HttpMessageConverter替换为Gson

    读者们看到这个标题也许会感到奇怪,SpringMVC中默认的HttpMessageConverter不是Jackson吗,但是我在使用的过程中发现Jackson并不好用,如果有一些复杂的嵌套类型,当然 ...

  6. SELECT中的if_case流程函数

    DQL中常用的流程函数if_case ---流程函数在一个SQL语句中实现条件选择 模拟对职员薪水进行分类: mysql> create table salary_tab(userid ,)); ...

  7. 国内首款开源的互联网支付系统roncoo-pay

    roncoo-pay是国内首款开源的互联网支付系统,其核心目标是汇聚所有主流支付渠道,打造一款轻量.便捷.易用,且集支付.资金对账.资金清结算于一体的支付系统,满足互联网业务系统的收款和业务资金管理需 ...

  8. 【HOSTS相关】前端提供测试模板地址

    在测试接口的时候,首先需要绑定HOSTS,这个文件的位置在这个目录的下面:C:\WINDOWS\system32\drivers\etc,打开hosts文件的方式选择"记事本"就可 ...

  9. HTML的基础复习

    html是描述网页的一种语言,是通向web技术世界的钥匙, html指的是超文本标记语言 <html></html>之间的文本描述网页 <body></bod ...

  10. c语言 内存管理

    动态内存是由程序员手动分配,不再使用时,一定记得释放内存. 静态内存是程序开始运行时由编译器分配的内存,它的分配是程序开始编译时完成的,不占用cpu资源.程序中的各种变量在编译源程序时就已经分配了内存 ...