删除字符串中某个字符strdel

函数

char *strDel(char* str,const char chToDel)

不是库里面的函数,自己实现的原型,删除str中所有的chToDel字符。

源码

//基本思想是:通过pRefStr2遍历str,找出不等于chToDel的值,将其赋值与pRefStr2
char *strDel(char* str,char chToDel)
{ assert((str!=NULL)&& (chToDel!=NULL));
char *pRefStr1, *pRefStr2;
pRefStr1=pRefStr2=str;//将两个指针变量同时指向str,后续改变指针变量的值相当于改变str的值 while(*pRefStr2++){
if(*pRefStr2!=chToDel)
{
*pRefStr1++=*pRefStr2;//找到不等于chToDel的值,并将其赋值与pRefStr1,再将pRefStr1的指针向后移动;
}
}
*pRefStr1='\0';
return str;
}

关键点: 注意C语言程序的顺序执行,以及指针。

测试

#include<iostream.h>
#include<assert.h>
void main()
{
char destStr[]="aadddfcca";
char delStr='a';
strDel(destStr,delStr);
cout<<destStr<<endl;
}

输出结果:

dddfcc

源码实现 --> strdel的更多相关文章

  1. 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新

    本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...

  2. C# ini文件操作【源码下载】

    介绍C#如何对ini文件进行读写操作,C#可以通过调用[kernel32.dll]文件中的 WritePrivateProfileString()和GetPrivateProfileString()函 ...

  3. 【原】FMDB源码阅读(三)

    [原]FMDB源码阅读(三) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 FMDB比较优秀的地方就在于对多线程的处理.所以这一篇主要是研究FMDB的多线程处理的实现.而 ...

  4. 从源码看Azkaban作业流下发过程

    上一篇零散地罗列了看源码时记录的一些类的信息,这篇完整介绍一个作业流在Azkaban中的执行过程,希望可以帮助刚刚接手Azkaban相关工作的开发.测试. 一.Azkaban简介 Azkaban作为开 ...

  5. 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新

    [原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...

  6. 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新

    上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...

  7. 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例

    前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...

  8. SDWebImage源码解读之SDWebImageDownloaderOperation

    第七篇 前言 本篇文章主要讲解下载操作的相关知识,SDWebImageDownloaderOperation的主要任务是把一张图片从服务器下载到内存中.下载数据并不难,如何对下载这一系列的任务进行设计 ...

  9. 【深入浅出jQuery】源码浅析--整体架构

    最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...

随机推荐

  1. mysql常用基础操作语法(四)--对数据的简单无条件查询及库和表查询【命令行模式】

    1.mysql简单的查询:select 字段1,字段2...  from tablename; 如果字段那里写一个*,代表查询所有的字段,等同于指定出所有的字段名,因此如果要查询所有字段的数据,一般都 ...

  2. WIN2003+IIS6+FastCGI+PHP5.3的安装配置

    本文所用的软件的下载地址 fastcgi的下载地址:http://download.microsoft.com/download/E/0/C/E0C0709A-66E5-4113-9A6C-A5F65 ...

  3. yii学习笔记--配置文件的配置

    'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..', 'name'=>'My Web Application',//项目的名称 / ...

  4. windows下使用docker安装tensorflow

    一.安装Docker 1.首先先按照docker,从https://get.daocloud.io/toolbox/  下载exe文件就好 双击安装会多出来三个东西: Oracle VM Virtua ...

  5. Flex读取txt文件中的内容(三)

    Flex读取txt文件中的内容 1.设计源码 LoadTxt.mxml: <?xml version="1.0" encoding="utf-8"?> ...

  6. freemarker报错之十二

    1.错误描述 六月 04, 2014 10:31:47 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...

  7. 安装Android的SDK

    安装Android的SDK 1.首先,下载installer_r23.0.2-windows.exe 2.双击"installer_r23.0.2-windows.exe",进入A ...

  8. Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.commons.EmptyVisitor

    1.错误描述 2014-7-13 1:45:53 org.apache.struts2.spring.StrutsSpringObjectFactory info 信息: ... initialize ...

  9. [Luogu4230]连体病原体

    题面戳我 sol 很好想+很好写的一道题,然而比赛中我还是没有切掉qaq. LCT 枚举左端点\(i\),向右移动右端点指针\(j\)找到第一个成环的位置.此时\([i,j],[i,j+1]...[i ...

  10. [JSOI2004]平衡点

    题面在这里 题意 ...见链接吧 sol 在此发一篇模拟退火的题解 不得不说luogu的数据真是太良心啦 一句话解释模拟退火:在一个慢慢缩小的范围内随机状态寻找最优解,当转移状态更优时直接接受,当当前 ...