删除字符串中的字符(C语言)
题目:
编程序将给定字符串中指定字符删除。要求删除指定字符后原字符串不能留下空位置,字符串和指定字符均由键盘输入
基本思路
将字符串与要删除的字符进行比较,若为相同字符,则将字符串中的该字符替换为原字符串中下一个字符,并依次将后面的字符提前,从而达到删除字符的目的。注意:字符前移一位后,需要判断移动到当前位置的字符是否需要继续删除。
算法描述
- 从键盘输入字符串和指定字符
- 用循环将字符串和字符依次比对,直到字符串结束
- 若字符串中没有指定字符则不改动;若存在指定字符,则将该字符用后的字符的下标依次提前一位
- 循环控制变量减一,再次判断该位置的字符是否为指定字符,重复第2、3步
代码实现
# include<stdio.h>
# include<string.h>
int main()
{
int i, j, k;
char a[1000];
char b[1000];
gets(a);//输入字符串
gets(b);//输入指定字符(可以是多个)
for(i=0;a[i]!='\0';i++)//遍历a数组
{
for(j=0;b[j]!='\0';j++)//遍历b数组
{
if(a[i]==b[j])//如果含有指定字符则开始替换后面字符
{
for(k=i;a[k]!='\0';k++)//定义新的变量开始循环赋值
a[k]=a[k+1];
i--;//下一轮循环会到新赋值的字符位置,继续比较
}
}
}
printf("%s",a);
}
算法分析
算法的要点是补全和对补全后位置的再判断
删除字符串中的字符(C语言)的更多相关文章
- Python:删除字符串中的字符
一.删除字符串两端的一种或多种字符 #strip().lstrip().rstrip()方法:(默认删除空格符) A.list.strip(字符):删除字符串两端的一种或多种字符: #例:删除字符串s ...
- PHP实现删除字符串中任何字符的函数
function delStr($start, $end, $orgenStr) { //读取要删除字符位置的前一部分字符串,并赋值给$temp //strpos读取字符第一次出现的位置 //subs ...
- C# VI: 删除字符串中指定字符的几种方法
本文基于Stackoverflows上以下几个Question: Fastest way to remove chars from string (http://stackoverflow.com/q ...
- C++标准库删除字符串中指定字符,比如空格
参见:https://zh.cppreference.com/w/cpp/algorithm/remove 使用 erase 和 remove 配合. #include <algorithm&g ...
- C 语言实例 - 删除字符串中的特殊字符
C 语言实例 - 删除字符串中的特殊字符 C 语言实例 C 语言实例 删除字符串中的除字母外的字符. 实例 #include<stdio.h> int main() { ]; int i, ...
- 删除字符串中多余的空白字符和空行(C语言实现)
要求:处理一个字符串,删除字符串中多余的空格.水平制表符和空行,并满足下列要求: (1)对原字符串只能进行一次扫描.(2)不允许申请新的空间.(3)处理后的字符串的首尾不能有空格.制表符和空行.(4) ...
- jst通用删除数组中重复的值和删除字符串中重复的字符
以下内容属于个人原创,转载请注明出处,非常感谢! 删除数组中重复的值或者删除字符串重复的字符,是我们前端开发人员碰到很多这样的场景.还有求职者在被面试时也会碰到这样的问题!比如:问删除字符串重复的字符 ...
- 算法基础:删除字符串中出现次数最少的字符(Golang实现)
描写叙述: 实现删除字符串中出现次数最少的字符.若多个字符出现次数一样,则都删除.输出删除这些单词后的字符串. 字符串中其他字符保持原来的顺序. 输入: 字符串仅仅包括小写英文字母, 不考虑非法输入, ...
- Java-Runoob-高级教程-实例-字符串:03. Java 实例 - 删除字符串中的一个字符
ylbtech-Java-Runoob-高级教程-实例-字符串:03. Java 实例 - 删除字符串中的一个字符 1.返回顶部 1. Java 实例 - 删除字符串中的一个字符 Java 实例 以 ...
随机推荐
- js对象常用属性和方法:复制一个对象,获取一个对象的所有key和所有value的方法
记录对象的一些实用使用方法及属性 // Object.assign() 多个对象合并 key相同则后面的覆盖前面的 const target = { a: 1, b: 2 }; const sourc ...
- 中国工业的下一个十年在哪里?APS系统或将引领智能化转型
为什么众多的ERP软件公司没有推出相关产品,当然可以肯定的是并非客户没有此观念,如果一定要说,也只能说目前的需求还不是非常强烈,从ERP厂商非常急切的与APS公司合作,甚至有高价购买APS公司代码的情 ...
- SpringBoot自定义Condition注解
最近碰到个这样的需求,需要同一套代码适配个版本数据库(数据库不同,且部分表的字段及关联关系可能会不同),即这套代码配置不同的数据库都能跑.项目采用的框架为SpringBoot+Mybatis. ...
- angular6 使用tooltip
准备 为了使用tooltip,可以安装ng-bootstrap组件,它包含两个依赖: angular:5.0以上版本: bootstrap css: 4.0版本. 安装好bootstrap之后,更新a ...
- Eclipse properties配置文件中文乱码设置
1. eclipse中properties的默认编码为 ISO-8859-1, 输入汉字会被转换为unicode 2. 点击 Windows-->preferences 按下图找到更改编码 ...
- <人人都懂设计模式>-中介模式
真正的用房屋中介来作例子, 好的书籍总是让人记忆深刻. class HouseInfo: def __init__(self, area, price, has_window, has_bathroo ...
- vue - 基础(1)
Vue基本用法 在学习Vue的基本用法之前,我们先简单的了解一些es6的语法 let: 特点:1.局部作用域 2.不会存在变量提升 3.变量不能重复声明 const: 特点:1.局部作用域 2.不会存 ...
- Eclipse调用Tomcat出错
错误提示:The server cannot be started because one or more of the ports are invalid. Open the server edit ...
- 解决opencart设置SSL后评论不能翻页的问题
为了网站的安全和seo,我们为客户的opencart网站添加了SSL加密实现https,并设置了301跳转使http跳到https,基本所有的功能都完好,就是有一点评论分页无法加载分页,去分析了链接源 ...
- Cantor表-(模拟)
链接:https://ac.nowcoder.com/acm/contest/1069/I来源:牛客网 题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一 ...