码迷,mamicode.com
首页 > 编程语言 > 详细

删除字符串中的字符(C语言)

时间:2019-12-10 01:01:08      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:指定   字符替换   多个   开始   基本   赋值   存在   注意   代码   

题目:

编程序将给定字符串中指定字符删除。要求删除指定字符后原字符串不能留下空位置,字符串和指定字符均由键盘输入

基本思路

将字符串与要删除的字符进行比较,若为相同字符,则将字符串中的该字符替换为原字符串中下一个字符,并依次将后面的字符提前,从而达到删除字符的目的。注意:字符前移一位后,需要判断移动到当前位置的字符是否需要继续删除。

算法描述

  1. 从键盘输入字符串和指定字符
  2. 用循环将字符串和字符依次比对,直到字符串结束
  3. 若字符串中没有指定字符则不改动;若存在指定字符,则将该字符用后的字符的下标依次提前一位
  4. 循环控制变量减一,再次判断该位置的字符是否为指定字符,重复第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语言)

标签:指定   字符替换   多个   开始   基本   赋值   存在   注意   代码   

原文地址:https://www.cnblogs.com/Xloading/p/12014185.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!