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

#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. CentOS服务器运维监控Nagios(一)

    CentOS下搭建Nagios 王尚 2014.11.09 操作系统:CentOS-6.5-i386-bin-DVD1.iso 安装在VM中进行测试的. 本章需要的软件链接: php-5.3.2.ta ...

  2. 33. leetcode 268. Missing Number

    Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missin ...

  3. mybatis深入理解之 # 与 $ 区别以及 sql 预编译

    mybatis 中使用 sqlMap 进行 sql 查询时,经常需要动态传递参数,例如我们需要根据用户的姓名来筛选用户时,sql 如下: select * from user where name = ...

  4. python--DenyHttp项目(1)--GUI:tkinter☞ module 'tkinter' has no attribute 'messagebox'

    AttributeError: module 'tkinter' has no attribute 'messagebox' improt tkinter from tkinter import * ...

  5. DynamicJSONserializer

    https://github.com/ststeiger/DynamicJSONserializer/blob/master/DynamicJSONserializer/Program.cs name ...

  6. 安徽省2016“京胜杯”程序设计大赛_J_YZK的大别墅

    YZK的大别墅 Time Limit: 1000 MS Memory Limit: 65536 KB Total Submissions: 24 Accepted: 12 Description 土豪 ...

  7. 鄙人对constructor和prototype的总结

    在学习js面向对象过程中,我们总是对constructor和prototype充满疑惑,这两个概念是相当重要的,深入理解这两个概念对理解js的一些核心概念非常的重要.因此,在这里记录下鄙人见解,希望可 ...

  8. Windows常用功能

    删除文件或目录CMD命令: rd/s/q 盘符:\某个文件夹  (强制删除文件文件夹和文件夹内所有文件)del/f/s/q 盘符:\文件名  (强制删除文件,文件名必须加文件后缀名)

  9. 移动端JS判断手势方向

    原生JS判断手势方向的解决思路: 1.滑动屏幕事件使用html5 的touchstart滑动开始事件和touchend滑动结束事件. 2.方向的判断,以起点做平面坐标系,与终点连线做直线,直线与x正半 ...

  10. 我读《通过Go来处理每分钟达百万的数据请求》

    我读<通过Go来处理每分钟达百万的数据请求> 原文 原文作者为Malwarebytes公司的首席架构师Marcio Castilho http://marcio.io/2015/07/ha ...