1樓:匿名使用者
倘若str(i)不是要刪除的字元,則str(j++)=str(i),即把str(i)的字元複製到str(j)中,然後j自增。直到str(i)為結束字元
str(j)='\0' 是由於str(i)已經被查詢完畢了,這是要給刪除後的字串乙個結束符。我把程式括起來或許好理解點
for(i=j=0;str(i)=!'\0';i++)str(j)='\0'
printf("%c",str)
2樓:匿名使用者
//程式如下
#include //字串中刪除指定字元void delete(char *p)
}main()
//自己寫的 除錯成功 結果正確
3樓:匿名使用者
分號位置不對吧。
不等於可以這樣寫嗎?
其實他的意思是,如果和ch不相同,就拷貝。
如果相同就跳過。這樣結果裡就不可能有ch 了。
小技巧。
2個計數器,i和j,乙個是掃瞄的位置(拷貝源)乙個是現有結果的最後位置(拷貝目的)
最後加\0是字串的結尾標誌。必須有。
實在不懂就單步執行,跟蹤一下數值吧。
c語言問題,C語言問題。
考驕 用指標將兩個字串連結接起來,前一個while迴圈,確定s1字串走完,第二個while開始將s1的逐個字元複製給s1走完,也就是末尾,這樣就可以把字串都匯入到s1中 最後一個空寫的應該寫return s1 長魚修韋 很久沒碰這東西了。我來解釋下 第一個while的迴圈是為了讓指標指向第一個字串的...
C語言問題,c語言問題?
自我程式設計 列印輸出乙個ok。因為前面迴圈for語句有分號結束。所以後面的printf語句不在迴圈內,不受迴圈語句影響。 理佑平鄲胭 結果是22 7 7 8 22 你可以將 i i i i是先 1再計算,還有這裡的運算順序是從左到右,所以應該是7 7 i 14 8 22 前兩個相加時,i先加1,加...
c語言問題,C語言問題?
這個問題說難不難,但理解可能有點玄乎而已,但是打個比方來理解就太容易掌握啦!就是說scanf的認定讀取,比如你單純的scanf c ch 那麼實際上已經認定了第乙個字元出現就把它賦予給ch,如果是你的scanf c 前面多了乙個空格,所以就認定了出現第乙個空格後的字元賦予給ch,如果寫成這樣 sca...