编程序将给定字符串中指定字符删除。要求删除指定字符后原字符串不能留下空位置,字符串和指定字符均由键盘输入算法
将字符串与要删除的字符进行比较,若为相同字符,则将字符串中的该字符替换为原字符串中下一个字符,并依次将后面的字符提早,从而达到删除字符的目的。注意:字符前移一位后,须要判断移动到当前位置的字符是否须要继续删除。编程
# 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); }
算法的要点是补全和对补全后位置的再判断数组