void Insert_list(Sqlist L,int pos,ElemType e)//在POS處插入e
成都創(chuàng)新互聯(lián)公司服務(wù)項目包括玉門網(wǎng)站建設(shè)、玉門網(wǎng)站制作、玉門網(wǎng)頁制作以及玉門網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,玉門網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到玉門省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
{
int i;
if(pos 1 || pos L.length+1)
printf("The num is out!");
L.elem = (ElemType *)realloc(L.elem,(++L.length)*sizeof(ElemType));
//問題很繞主要就出在length你剛開始就加了1
if(pos == L.length)
L.elem[L.length-1] = e;
else
{
i = L.length - 2;
while(i != pos - 2) {
L.elem[i+1] = L.elem[i];
i--;
}
L.elem[++i] = e;
}
}
如果修改如下,是不是更容易理解:
void Insert_list(Sqlist L,int pos,ElemType e)//在POS處插入e
{
int i;
if(pos 1 || pos L.length+1)
printf("The num is out!");
L.elem = (ElemType *)realloc(L.elem,(L.length + 1)*sizeof(ElemType));
if(pos == L.length + 1) //如果為之前的長度+1
L.elem[L.length] = e; //那么直接插在最后
else
{
i = L.length - 1; //否則從之前的最后一個元素開始遍歷,也就是之前的長度-1的位置開始
while(i != pos - 2) { //找到pos-2的位置,其實是找pos-1的位置,即插入位置,但是為了移動元素,必須到pos-2,因為pos-1處的元素也需要向后移動,如果是到pos-1的話,那么pos-1處的元素將丟失
L.elem[i+1] = L.elem[i];
i--;
}
L.elem[++i] = e;//最終在pos-1處插入元素
}
L.length++;//最后再讓長度加1
}
這樣寫似乎比較容易理解,先增加長度會使問題復(fù)雜化
測試前提:showList中iL.length而不是L.length+1
測試樣例
int main()
{
Sqlist L;
Init_list(L);
Insert_list(L,1,1);
Insert_list(L,1,2);
Insert_list(L,2,3);
Insert_list(L,4,4);
Insert_list(L,3,5);
Show_list(L);
}
測試結(jié)果
2 3 5 1 4 ,沒有問題
樓主的意思是在str1中刪除str2中出現(xiàn)的字符?那么改成:
#includestdio.h
void main ()
{
char str1[9]={'t','i','n','m','f','g','y','f','s'};
char str2[3]={'A','s','g'};
int i,k,l;
for(i=0;i9;i++)
{
l=0;
for(k=0;k3;k++)
{
if (str1[i]=str2[k])
{l=1;break;}
}
if l!=1
printf("%c",str1[i]);
}
}
利用C語言刪除字符串中所有指定的字符方法如下:
1.基本方法是,編寫函數(shù)fun:deletechar()。這個函數(shù)需要接受兩個參數(shù)的傳入,一個為該字符串str,另一個為想刪除的字符c。通過對整個字符串的逐個遍歷,凡是檢測到字符為c,則刪除此字符。具體實現(xiàn)代碼如下:
2.在主函數(shù),只需要接受用戶輸入的字符串,然后調(diào)用deletechar()函數(shù),最后輸出結(jié)果即可。主函數(shù)代碼實現(xiàn)部分如下:
擴展資料:
1.remove()是C語言中的函數(shù),一般作用是刪除數(shù)組、鏈表對象所有的元素。函數(shù)原型是
2.remove()函數(shù)用于刪除指定的文件,其原型如下:
參考資料:remove()函數(shù)-百度百科
既然是數(shù)組,表示數(shù)據(jù)為線性陣列了,想刪除其中一個數(shù)據(jù),是不可能的,只能用該位置以后的數(shù)據(jù)整體平移一個位置覆蓋當(dāng)前位置。例如:數(shù)組數(shù)據(jù)
1
2
3
4
5
6
7,想刪除3,那么得到的新數(shù)組為1
2
4
5
6
7,其中
4
5
6
7
數(shù)據(jù)的位置相對原始數(shù)組位置整體平移減小1。
當(dāng)然想是想快速刪除數(shù)據(jù),可以考慮使用數(shù)據(jù)鏈表,對數(shù)組單鏈即可