刪除字符串中的字符(C語言)


題目:

編程序將給定字符串中指定字符刪除。要求刪除指定字符后原字符串不能留下空位置,字符串和指定字符均由鍵盤輸入

基本思路

將字符串與要刪除的字符進行比較,若為相同字符,則將字符串中的該字符替換為原字符串中下一個字符,並依次將后面的字符提前,從而達到刪除字符的目的。注意:字符前移一位后,需要判斷移動到當前位置的字符是否需要繼續刪除。

算法描述

  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+1];
				i--;//下一輪循環會到新賦值的字符位置,繼續比較 
			}
		}
	}
	printf("%s",a);
}

算法分析

算法的要點是補全和對補全后位置的再判斷


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM