文档章节

字符替换

陈洪波
 陈洪波
发布于 2015/05/19 19:34
字数 471
阅读 10
收藏 0

编制一个字符替换函数rep(char *s,char *s1,char *s2),实现将已知字符串s中所有属于字符串s1中的字符都用字符串s2中的对应字符代替。这里使用指针实现。

  • 举个例子:

    • char s[] = “ABCABC”;
    • char s1[] = “AB”;
    • char s2[] = “XY”;

    • 运行该函数之后,变为”XBYXBY”

那么可以这么想,s1和s2分别位于两个数组中,从s的第一个字符开始,寻找s1中是否有与该元素相等的字符,如果存在该字符,就将s2中相应位置的字符替换成s中的字符。

后面我们使用指针实现的函数也是基于这个道理的。

下面附上我的实现代码:

#include <stdio.h>
#define MAX 100

void rep(char *s,char *s1,char *s2);

/** * @brief main 编制一个字符替换函数rep(char *s,char *s1,char *s2), * 实现将已知字符串s中所有属于字符串s1中的字符都用字符串s2中的对应字符 * 代替 * 例如 * char s[] = "ABCABC"; * char s1[] = "AB"; * char s2[] = "XY"; * * 运行该函数之后,变为"XBYXBY" * * @return */
int main(void)
{
    char s[MAX],s1[MAX],s2[MAX];

    printf("Please enter the s array:\n");
    scanf("%s",&s);

    printf("Please enter the s1 array:\n");
    scanf("%s",&s1);

    printf("Please enter the s2 array:\n");
    scanf("%s",&s2);

    rep(s,s1,s2);

    printf("After rep,the array s is:\n");
    printf("%s\t",s);

    return 0;
}

/** * @brief rep 将字符串s中所有属于字符串s1中的字符都用字符串s2中的对应字符代替 * @param s 源字符串 * @param s1 要被替换的字符 * @param s2 替换的字符 */
void rep(char *s,char *s1,char *s2){
    char *p;

    for(;*s;s++){
        for(p = s1;*p && *p!=*s;p++);

        if(*p){
            /** * 这个地方处理的比较好 * p-s1为偏移量,当s2加上相应的偏移量之后; * 就是对应的要被替换的字符 */
            *s = *(p-s1+s2);
        }

    }
}

下面是我的程序的运行结果:

这里写图片描述

本文转载自:http://blog.csdn.net/hongbochen1223/article/details/45768797

陈洪波
粉丝 2
博文 76
码字总数 1552
作品 0
济南
程序员
私信 提问
JavaScript中replace方法深入理解

replace方法是属于String对象的,可用于替换字符串。 简单介绍: StringObject.replace(searchValue,replaceValue) StringObject:字符串 searchValue:字符串或正则表达式 replaceValue:字符串...

widely
2013/11/06
154
1
深入理解 JavaScript 中的 replace 方法

字符串替换字符串 直接使用字符串能让自己从loser变成hero,但是如果有2个loser就不能一起变成hero了。 正则表达式替换为字符串 使用正则表达式,并将正则的global属性改为true则可以让所有l...

H_J
2013/12/25
72
0
一种简单的字符转义算法

有的时候我们希望将字符串中的某些特殊字符替换成其他字符,来方便我们对于分隔符的使用,比如说我们需要转义字符串中的小数点字符(.),来将字符串拼成用点号隔开的字段,来形成KVDB中的一...

灵剑
2016/10/12
0
0
JavaScript特殊字符替换及替换全部字符串

JavaScript特殊字符替换及替换全部字符串 1.替换所有要替换字符 <script type="text/javascript"> var str = "$Hello World!$Hello World!$Hello World!"; //把所有的“Hello World!”替换为......

爱coding
2012/07/25
2.6K
0
java string 字符串替换

i、replace方法 该方法的作用是替换字符串中所有指定的字符,然后生成一个新的字符串。经过该方法调用以后,原来的字符串不发生改变。例如: String s = “abcat”; String s1 = s.replace(...

如风达
2015/07/08
24.4K
1

没有更多内容

加载失败,请刷新页面

加载更多

实战项目-学成在线(一)

之前看的黑马程序员实战项目之一,打算以博客的形式写出来,也让自己重新温习一下。 1、项目背景 略(就是当前这东西很火,我们重点在开发,这些就略过) 2、功能模块 门户,学习中心,教学管...

lianbang_W
22分钟前
2
0
基于Vue的数字输入框组件开发

本文转载于:专业的前端网站➫基于Vue的数字输入框组件开发 1、概述 Vue组件开发的API:props、events和slots 2、组件代码 github地址:https://github.com/MengFangui/VueInputNumber 效果:...

前端老手
30分钟前
2
0
百度地图根据经纬度获取运动轨迹

<!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=n......

泉天下
32分钟前
4
0
学习记录(day04-axios增删改查、v-for循环、页面加载成功处理函数)

[TOC] 1.1 基本语法:插值表达式 <template> <div> {{username}} <br/> {{1+2+3}} <br/> {{'你的名字是:' + username}} <br/> {{'abc'.split('')}} </div><......

庭前云落
今天
3
0
CentOS Linux 7上将ISO映像文件写成可启动U盘

如今,电脑基本上都支持U盘启动,所以,可以将ISO文件写到U盘上,用来启动并安装操作系统。 我想将一个CentOS Linux 7的ISO映像文件写到U盘上,在CentOS Linux 7操作系统上,执行如下命令: ...

大别阿郎
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部