C語言實現刪除某一個數組值的方法
1、前言
在傢裡閑著還是閑著,這幾天見證瞭Python
各種數據結構的強大。Python
中的數據類型如:列表、元組、字典等都具有其的特點。列表無需要設定其的長度,我們可以隨機插入元素,同時元素的類型也是隨意的。
或許這就是面向對象語言的強大,C語言做為面向過程的語言自然沒有如同Python一般強大的功能。學習C語言不會指針和結構體確實玩不出什麼東西,就例次CCF考試的字符串處理題使用C語言難度都很大,但是使用諸如C++一樣面向對象的語言都是能輕而易舉地解決問題的。
不過為瞭讓以後處理C語言更加方便,個人打算今後在這記錄一些使用的函數,大傢可以自取。
2、刪除數組中的元素
python中我們可以輕易地使用如下的方法刪除特定的元素:
lang = ["Python", "C++", "Java", "PHP", "Ruby", "MATLAB"] #使用正數索引 del lang[2] print(lang)
然而C語言一切東西都得靠自己搭建。在學習數據結構時第一個實驗就是與順序表處理相關的內容,這裡介紹的就是其中一個操作。
我們在這邊就可以先定義一個函數,參數分別是數組名和數組長度:
void del_element(int arr[],int n) //n為數組的元素個數
數組的長度雖然需要我們自己給定,但是我們不必要直接寫出其具體的元素個數,而直接先向數組中賦值。
int arr[]={1,4,5,7};
既然要刪除數組中的元素,我們就必須得先知道數組中有哪些元素。同時還要定義一個變量,並將需要刪除的元素賦值給那個變量。
int delect=0; printf("刪除操作前的數組:\n"); for(int k = 0;k<n;k++) { printf("%4d",arr[k]); } printf("\n"); printf("請輸入你要刪除的數:"); scanf("%d",&delect);
下面就是重中之中,刪除這個元素的操作:
將要刪去的元素後面的元素往前移,那個要刪除的函數自然而然就被覆蓋掉瞭。
函數源代碼:
void del_element(int arr[],int n) //n為數組的元素個數 { int delect=0; printf("刪除操作前的數組:\n"); for(int k = 0;k<n;k++) { printf("%4d",arr[k]); } printf("\n"); printf("請輸入你要刪除的數:"); scanf("%d",&delect); for(int i=0;i<=n-1;i++) { if(delect==arr[i]) { for(int j=i;j<=n-2;j++) { arr[j]=arr[j+1];//覆蓋 } } } }
下面我們在主函數中調用該函數:
int main() { int arr[]={1,4,5,7}; int length_arr = sizeof(arr)/sizeof(int); del_element(arr,length_arr); printf("完成操作後的數組:\n"); for(int i=0;i<length_arr-1;i++) { printf("%4d",arr[i]); } return 0; }
我們可以不需去計算數組元素個數,而是使用sizeof(arr)/sizeof(int)
的方式計算數組長度。
操作過程與結果:
C語言雖然較為麻煩,但是我們仍然可以用一些簡單的方法實現。
到此這篇關於C語言數組中刪除數組中某個值的方法的文章就介紹到這瞭,更多相關C語言數組中刪除數組中某個值內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!