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

#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. [基础]PeopleSoft中的作业和调度作业集合定义

    PeopleSoft进程调度器可以使一个或多个进程作为一个组.这个组在PeopleSoft中被称为作业(Job). PeopleSoft进程被定义为单个任务,程序或例程,例如cobol程序或AE程序或 ...

  2. Python爬虫从入门到放弃(二十)之 Scrapy分布式原理

    关于Scrapy工作流程回顾 Scrapy单机架构 上图的架构其实就是一种单机架构,只在本机维护一个爬取队列,Scheduler进行调度,而要实现多态服务器共同爬取数据关键就是共享爬取队列. 分布式架 ...

  3. mysql存储过程详细讲解及完整实例下载

    一.存储过程概念 1.存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集.经编译后存储在数据库 中. 2.存储过程是数据库中的一个重要对象,用户通过指定存储过程的名字并给 ...

  4. react入门之使用webpack搭配环境(一)

    react入门之搭配环境(一) 如果你想直接上手开发,而跳过这些搭配环境的繁琐过程,推荐你使用官方的create-react-app命令 npm install -g create-react-app ...

  5. Celery 使用(一)

    Celery 使用(一) 架构 Producer:任务发布者: Celery Beat:任务调度器,Beat进程会读取配置文件中的内容,周期性的将配置中到期需要执行的任务发送给任务队列: Broker ...

  6. Linux 磁盘分区修改与管理

    --Linux 磁盘分区修改与管理 -----------------------------2014/03/05 1. 目的,将磁盘卷/dev/cciss/c0d0p8修改成新的用途. 原: /de ...

  7. 巧妙利用JS中的自定义函数——化繁为简,提高效率

    利用自定义函数编写年月日时间表: (复杂写法)如下: <body>                <select id="year" size="1&q ...

  8. Mac OSX中的@executable_path, @load_path和@rpath的理解(网摘)

    Mac OSX中的@executable_path, @load_path和@rpath的理解 原文出处:[24K纯开源] Note: this article is actually about t ...

  9. Guava Cache源码解析

    概述: 本次主要是分析cache的源码,基本概念官方简介即可. 基本类图: 在官方的文档说明中,Guava Cache实现了三种加载缓存的方式: LoadingCache在构建缓存的时候,使用buil ...

  10. 集合-TreeSet-Comparator

    package com.bjpowernode.tree2; public class Student { private String name; private int age; public S ...