删除字符串中的字符(C语言)
程序员文章站
2022-03-21 17:24:14
题目: 编程序将给定字符串中指定字符删除。要求删除指定字符后原字符串不能留下空位置,字符串和指定字符均由键盘输入 基本思路 将字符串与要删除的字符进行比较,若为相同字符,则将字符串中的该字符替换为原字符串中下一个字符,并依次将后面的字符提前,从而达到删除字符的目的。 注意 :字符前移一位后,需要判断 ......
题目:
编程序将给定字符串中指定字符删除。要求删除指定字符后原字符串不能留下空位置,字符串和指定字符均由键盘输入
基本思路
将字符串与要删除的字符进行比较,若为相同字符,则将字符串中的该字符替换为原字符串中下一个字符,并依次将后面的字符提前,从而达到删除字符的目的。注意:字符前移一位后,需要判断移动到当前位置的字符是否需要继续删除。
算法描述
- 从键盘输入字符串和指定字符
- 用循环将字符串和字符依次比对,直到字符串结束
- 若字符串中没有指定字符则不改动;若存在指定字符,则将该字符用后的字符的下标依次提前一位
- 循环控制变量减一,再次判断该位置的字符是否为指定字符,重复第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+i]; i--;//下一轮循环会到新赋值的字符位置,继续比较 } } } printf("%s",a); }
算法分析
算法的要点是补全和对补全后位置的再判断
推荐阅读
-
C语言 连接字符串
-
浅谈Python中的字符串
-
C语言的字符串输出fputs()函数
-
php提取csv格式文件中的字符串出现的有关问题及解决方法
-
JavaScript中操作字符串之localeCompare()方法的使用
-
php中将数组转成字符串并保存到数据库中的函数代码_php技巧
-
企业案例:查找当前目录下所有文件,并把文件中的https://www.cnblogs.com/zhaokang2019/字符串替换成https://www.cnblogs.com/guobaoyan2019/
-
sql话语中能否直接把截取的字符串当作where条件
-
PHP中substr_count()函数获取子字符串出现次数的方法,phpsubstr_count
-
php善用正则表达式 处理字符串中需不要的值