大俠們幫我解釋一下這個C語言源程式

時間 2022-07-22 00:05:20

1樓:

while (*str && *str != ch) str++;

這句的作用是指標迴圈後移,當str指向的內容不為『\0』,而且str!=ch為真的時候,指標往後指一位。

你的問題是:那怎麼能找出不同的那個字母呢?

這個迴圈並不查詢不同的那個字母,而是通過迴圈,查詢每一位字母,看有沒有和ch相同的,ch為你的輸入。

你的輸入有兩種:一種是和s陣列裡面的某個字元相同,一種是不同。

如果輸入和某一個元素相同,檢索s陣列裡的每一個元素,與ch不同且不為str指向內容不為『\0』則str++,直到某一位相同,則迴圈結束,if語句後面的內容不執行。

如果輸入和陣列每一個元素不同,則str!=ch為真,一直執行後面的str++,執行完while迴圈後,每一個元素和ch都不相同,後面的if語句相當於在最後加一個ch,再補一個『\0』。

2樓:

每個字串結尾都有一個'\0'字元。

'\0'字元在ascii表裡,用十進位制表示為0;

當*str='\0',則while(*str && &str != ch)中的條為假,跳出迴圈。

執行下面的語句。

建議多看這樣的源**,仔細分析為什麼他會這麼寫。對自己的知識的增長有很大幫助。

3樓:暢夜桖

字串以\0結束,while(*str&&*str!=ch) str++;

*str指的是這個字串陣列中的一位字元,str++是讓指標每次向下移動一個char的大小

這樣就可以向下查詢字串,

如果遇到\0,也就是0,即為假,或者

*str指向的那個字元與ch相同,跳出while迴圈,當前指標指向'\0'這個字元,

str[0]就是當前指標位置,將其覆蓋為ch,str[1]為上一個位置的下一個位置。加上字串的結束符『\0』,就可以結束這個字串了。

c語言中非0為真,0為假

while (3);這個語句可以一直迴圈,直到系統崩潰。while(0);就一邊也不會迴圈

誰能幫我解釋一下這個C語言程式的每個步驟的意思

include 包含輸入輸出庫檔案 include 包含數學函式庫檔案 int s int n 定義一個返回值為int型,帶有一個int型引數的函式s 否則返回值為1 void main 主函式,定義為無返回值型別 這是一個查詢1到100中的素數的程式! 孤單與寂寞 include include ...

C語言 求高手幫我解釋一下這個程式這是求右螺旋的

喻鵬程 我終於看懂了,第一時間來講給你聽 如果你聽懂了,給我加30分哦 螺旋首先加的是行,加完行再加列,然後減行,最後減列,如此迴圈if裡判斷的是看行列有沒有越界,當然越界還有另一種,即是a row col 0一開始沒有賦值的元素自動給的0,現在不是0就是說已經到界限了 然後是if裡面的執行問題了,...

可以解釋一下這個嗎,可以幫我解釋一下這個問題嗎?

您好 翻譯為 這個命令難以為父母,放棄另外箕裘,兄弟沒有力量,妻子很難找到,只喜歡清閒冷淡,不應該運用求商量,一番事業兩批收,一個處於身心兩處優,高人欽佩,小人嫉妒,由於是第一年伶俐,反交中途停留,從有高人互相推薦,不需要騎馬上揚州。魚翻吞食藻格 生活如魚入水池,事情將危險的地方卻沒有危險,幾番謀劃...