Project 5:替换指定字符串
这个程序主要用于替换指定字符串,较为简单。
#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:替换指定字符串的更多相关文章
- PHP替换指定字符串
在PHP中,有两个函数可以实现字符串替换,strtr()和str_repalce()函数. 首先我们简单了解下strtr()函数的定义及语法. strtr:转换指定字符. 两个语法: 第一种语法: s ...
- javascript中通过replace函数搜索和替换指定字符串
javascript中我们可以通过replace函数替换部分字符串为指定字符串,本文展示了replace的详细用法,并且通过范例演示了如何进行部分替换.完整替换和不区分大小写替换. javascrip ...
- c++ string替换指定字符串
string fnd = "dataset"; string rep = "labels"; string buf = "d:/data/datase ...
- mysql批量替换指定字符串
将字段title中的abc替换为123 UPDATE `table1` SET `title` = replace(title, 'abc', '123') WHERE `typeid` =18;
- js替换指定字符串
// var a = "212"; // var b = []; // for(var i=0;i<a.length;i++){ // if(a[i]=="1&qu ...
- Java遍历目录下全部文件并替换指定字符串
应用场景:比方有一个深层次的文件目录结构,如:javaAPI 每一个文件中面都有同样的内容,而我们要统一改动为其它内容.上千个文件假设一个个改动显得太不明智. import java.io.Buffe ...
- replace() MySQL批量替换指定字段字符串
mysql replace实例说明: UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def'); REPLACE(str,from_str,to_str) 在字符串 st ...
- 用变量替换指定的字符串,sed: -e 表达式 #1, 字符 29: “s”的未知选项
在shell脚本里,使用sed,然后用变量替换指定的字符串,一直出现这个错误:但是单独运行在外面可以 把分隔符/替换成#就可以: sed "s#revision=.*#revision=$s ...
- mysql函数之七:replace() MySQL批量替换指定字段字符串
mysql replace实例说明: UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def'); REPLACE(str,from_str,to_str) 在字符串 st ...
随机推荐
- Struts2漏洞解决
如果你也正在使用Struts2作为web层框架做开发或者做公司的送检产品,然后被告知有各种各样的Struts2漏洞,那本篇博客值得你花时间来喽上一两眼. 前端时间抽空为公司做了新一代的送检产品,为了方 ...
- Spring @Transactional 使用
Spring @Transactional是Spring提供的一个声明式事务,对代码的侵入性比较小,只需考虑业务逻辑,不需要把事务和业务搞混在一起. @Transactional 可以注解在inter ...
- Git版本控制系统之基本使用
最早是通过接触著名的开源社区Github了解到Git的,但一直没有系统学习过.这次下定决心从头到尾系统的学一学,也将学习过程记录于此,供大家批驳.本篇文章先从以下几个方面简单了解一下Git: Git的 ...
- C#去掉JSON字符串中的最后一个数字
这个问题总结起来就是去掉字符串中的最后一个"," 字符串:string s = "1,2,3,4,5," 目标:删除最后一个 "," 方法: ...
- Unity 继承MonoBehaviour脚本 执行顺序 详解
先看结果 Awake ->OnEnable-> Start ->-> FixedUpdate-> Update -> LateUpdate ->OnGUI ...
- Luogu P1576 最小花费
题目背景 题目描述 在n个人中,某些人的银行账号之间可以互相转账.这些人之间转账的手续费各不相同.给定这些人之间转账时需要从转账金额里扣除百分之几的手续费,请问A最少需要多少钱使得转账后B收到100元 ...
- 使用JAXP进行XM解析(基于DOM)
最近在做微信开发需要各种解析各种xml,基本用JAXP 解析的 JAXP 开发包是J2SE的一部分,它由javax.xml.org.w3c.dom .org.xml.sax 包及其子包组成. 在 ja ...
- 如何两周达到150行Java程序的能力--part 2
第一次课训练营课程打通了有C语言编程通往面向对象编程的道路,然而道路依然会曲折.下图是第二次训练营课程的训练大纲,从第二次开始,每次课首先进行测试. 针对作业1的训练要求,明确定义了13个具体的测试点 ...
- C#操作EML邮件文件实例(含HTML格式化邮件正文和附件)
使用QQ邮箱.163邮箱等导出的EML邮件,包含了邮件的发件人.主题.内容.附件等所有信息,该实例就如何解析这些信息,并在编辑后保存做个Demo. 如下图所示,EML文件是编码后的文本文件,可以使用正 ...
- 【Tomcat】batch获得war包
功能: 将maven项目打包复制到tomcat/webapps set git=C:\Users\zhengwenqiang\git set tomcat=e:\tomcat7.0.64 c: cd ...