本题要求实现一个删除字符串中的指定字符的简单函数。

函数接口定义:
void delchar( char *str, char c );
其中char *str是传入的字符串,c是待删除的字符。函数delchar的功能是将字符串str中出现的所有c字符删除。

#include <stdio.h>
#define MAXN 20void delchar( char *str, char c );
void ReadString( char s[] ); /* 由裁判实现,略去不表 */int main()
{char str[MAXN], c;scanf("%c\n", &c);ReadString(str);delchar(str, c);printf("%s\n", str);return 0;
}/* 你的代码将被嵌在这里 */

思路1:以字符串hello为例,删除l字符。
i和j同指向,i逐个赋值给j,当遇到待删字符时i跳过,j不动,故最后j接收到的都是保留下来的字符,当i扫描完整个数组后,给j数组封尾结束。(用到了数据结构的思想)

优点:耗时短,需要的辅助空间少。

代码实现:

void delchar( char *str, char c )
{int i,j;for(i=0,j=0;str[i]!=0;i++){if(str[i]!=c){str[j]=str[i];j++;}}str[j]=0;
}

思路2:对数组中每个字符依次扫描,遇到待删字符,就把其后数组全部左移1位。
优点:简单容易想到
缺点:时间复杂度高,且对i回退一步的处理易出错。

void delchar( char *str, char c )
{for(int i=0;str[i]!=0;i++){if(str[i]==c){for(int j=i;str[j]!=0;j++){str[j]=str[j+1];}i--;}}
}

习题8-6 删除字符(多种方法详解)相关推荐

  1. python清空集合_python集合删除多种方法详解

    这篇文章主要介绍了python集合删除多种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 删除指定的元素 A={'a','c','b','d ...

  2. python怎么读文件内容-Python读取文件内容为字符串的方法(多种方法详解)

    以下笔记是我在 xue.cn 学习群之数据分析小组所整理分享的心得.相关背景是:我选择中文词频统计案例作为考察大家python基础功掌握程度. 以小见大,下面是2个小技能的具体实战: 如何灵活地处理文 ...

  3. python list遍历删除,对python list 遍历删除的正确方法详解

    在遍历list的时候,删除符合条件的数据,可是总是报异常,代码如下: num_list = [1, 2, 3, 4, 5] print(num_list) for i in range(len(num ...

  4. jq添加或删除html元素,jQuery添加删除DOM元素方法详解

    本文实例分析了jQuery添加删除DOM元素的方法.分享给大家供大家参考,具体如下: 介绍 DOM是Document Object Modeule的缩写,一般来说,DOM操作分成3个方面. 1.DOM ...

  5. JavaScript:添加与删除数组的方法详解

    文章目录 添加删除数组元素的方法 添加删除数组元素的方法 <script>// 添加删除数组元素的方法// 1.push()在我们数组的末尾 添加一个或者多个数组元素var arr = [ ...

  6. Python读取文件内容为字符串的方法(多种方法详解)

    方法1: 拷贝文章时,直接把内容赋值给一个变量,保存到一个 .py 文件中.然后在脚本中,导入它. 存储文章的文件article.py content = """ 复制的 ...

  7. python输入字符串并反序result_python字符串反转的四种方法详解

    python字符串反转的四种方法详解 这篇文章主要介绍了python字符串反转的四种详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.用red ...

  8. 删除oracle数据库的三种方法,oracle数据库的删除方法详解

    oracle数据库的删除方法详解 1.图形界面删除 练习之前记得创建快照 执行命令之前要保证数据库属于open状态 SQL> alter database open; [oracle@local ...

  9. [转]VB中资源文件.res的使用方法详解

    在几乎所有的Windows应用程序中都拥有资源文件,这些文件定义使用应用程序将要显示很多的用户界面元素,以及提供程序所需要的各种类型数据的存储场所.资源文件在VC应用程序中应用十分广泛,在VB应用中却 ...

最新文章

  1. Java学习之键盘输入输出小程序
  2. day11-(cookiesession)
  3. MySQL 命令行下执行.sql脚本
  4. 万年历c语言编程代码_C语言高效编程与代码优化~
  5. redis 2m数据读取_Flink读写Redis(二)读取redis数据
  6. 下一清分日期是几年前_下一清分日期是什么意思
  7. 如何在uniapp中引入阿里字体图标
  8. js改变select下拉框默认选择的option
  9. 数学之路-分布式计算-disco(4)
  10. C Builder中如何利用消息
  11. 第三十篇:SOUI模块结构图及SOUI框架图
  12. 解析xlsx与xls--使用2012poi.jar
  13. Atitti. 语法树AST、后缀表达式、DAG、三地址代码
  14. c语言函数 参数,C语言函数的调用与参数
  15. 公司签到考勤薪资表(Excel导入信息)
  16. 电路故障检测与调试分析
  17. 强烈推荐这个Java学习文档——不看后悔系列
  18. 巧吃支付宝新年红包,再也不用担心钱花不出去了(售货机里面的饮料售空也没事哦)
  19. EASYOPS系列|纠正下很多错误,谈下部署发布的几种思路
  20. 震屏效果java_CocosCreator 实现手机震动效果

热门文章

  1. 四级作文之观点评述型文章
  2. 一分钟解决Springboot响应报错:would dispatch back to the current handler URL [/index] agai
  3. 使用DIV、CSS技术设计的个人博客网页(web期末考试)
  4. Item 20: Prefer pass-by-reference-to-const to pass-by-value(Effective C++)
  5. 秒懂Excel的三种引用
  6. Bootstrap dropdown require Popper.js(popper.js下载)
  7. thinkphp 多条件筛选如何实现,添加大于小于条件,时间范围查询
  8. 动态网站开发课后笔记03:Java Web概述
  9. java求几何周长面积_Java——求图形面积和周长
  10. rac节点时间同步方法