习题8-6 删除字符(多种方法详解)
本题要求实现一个删除字符串中的指定字符的简单函数。
函数接口定义:
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 删除字符(多种方法详解)相关推荐
- python清空集合_python集合删除多种方法详解
这篇文章主要介绍了python集合删除多种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 删除指定的元素 A={'a','c','b','d ...
- python怎么读文件内容-Python读取文件内容为字符串的方法(多种方法详解)
以下笔记是我在 xue.cn 学习群之数据分析小组所整理分享的心得.相关背景是:我选择中文词频统计案例作为考察大家python基础功掌握程度. 以小见大,下面是2个小技能的具体实战: 如何灵活地处理文 ...
- python list遍历删除,对python list 遍历删除的正确方法详解
在遍历list的时候,删除符合条件的数据,可是总是报异常,代码如下: num_list = [1, 2, 3, 4, 5] print(num_list) for i in range(len(num ...
- jq添加或删除html元素,jQuery添加删除DOM元素方法详解
本文实例分析了jQuery添加删除DOM元素的方法.分享给大家供大家参考,具体如下: 介绍 DOM是Document Object Modeule的缩写,一般来说,DOM操作分成3个方面. 1.DOM ...
- JavaScript:添加与删除数组的方法详解
文章目录 添加删除数组元素的方法 添加删除数组元素的方法 <script>// 添加删除数组元素的方法// 1.push()在我们数组的末尾 添加一个或者多个数组元素var arr = [ ...
- Python读取文件内容为字符串的方法(多种方法详解)
方法1: 拷贝文章时,直接把内容赋值给一个变量,保存到一个 .py 文件中.然后在脚本中,导入它. 存储文章的文件article.py content = """ 复制的 ...
- python输入字符串并反序result_python字符串反转的四种方法详解
python字符串反转的四种方法详解 这篇文章主要介绍了python字符串反转的四种详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.用red ...
- 删除oracle数据库的三种方法,oracle数据库的删除方法详解
oracle数据库的删除方法详解 1.图形界面删除 练习之前记得创建快照 执行命令之前要保证数据库属于open状态 SQL> alter database open; [oracle@local ...
- [转]VB中资源文件.res的使用方法详解
在几乎所有的Windows应用程序中都拥有资源文件,这些文件定义使用应用程序将要显示很多的用户界面元素,以及提供程序所需要的各种类型数据的存储场所.资源文件在VC应用程序中应用十分广泛,在VB应用中却 ...
最新文章
- Java学习之键盘输入输出小程序
- day11-(cookiesession)
- MySQL 命令行下执行.sql脚本
- 万年历c语言编程代码_C语言高效编程与代码优化~
- redis 2m数据读取_Flink读写Redis(二)读取redis数据
- 下一清分日期是几年前_下一清分日期是什么意思
- 如何在uniapp中引入阿里字体图标
- js改变select下拉框默认选择的option
- 数学之路-分布式计算-disco(4)
- C Builder中如何利用消息
- 第三十篇:SOUI模块结构图及SOUI框架图
- 解析xlsx与xls--使用2012poi.jar
- Atitti. 语法树AST、后缀表达式、DAG、三地址代码
- c语言函数 参数,C语言函数的调用与参数
- 公司签到考勤薪资表(Excel导入信息)
- 电路故障检测与调试分析
- 强烈推荐这个Java学习文档——不看后悔系列
- 巧吃支付宝新年红包,再也不用担心钱花不出去了(售货机里面的饮料售空也没事哦)
- EASYOPS系列|纠正下很多错误,谈下部署发布的几种思路
- 震屏效果java_CocosCreator 实现手机震动效果
热门文章
- 四级作文之观点评述型文章
- 一分钟解决Springboot响应报错:would dispatch back to the current handler URL [/index] agai
- 使用DIV、CSS技术设计的个人博客网页(web期末考试)
- Item 20: Prefer pass-by-reference-to-const to pass-by-value(Effective C++)
- 秒懂Excel的三种引用
- Bootstrap dropdown require Popper.js(popper.js下载)
- thinkphp 多条件筛选如何实现,添加大于小于条件,时间范围查询
- 动态网站开发课后笔记03:Java Web概述
- java求几何周长面积_Java——求图形面积和周长
- rac节点时间同步方法