c新手問題while str 判斷條件是什麼意思

時間 2021-09-05 20:04:53

1樓:匿名使用者

對於while(c) ,c為0時,終止迴圈,非0時,繼續。

同理,對於while(*str) ,*str為0時,退出迴圈,非0時,繼續。

同樣,對於while(str) ,str為0時,退出迴圈,非0時,繼續。

0和非0是c語言判定「真」與「假」的惟一標準。對於字串而言,串結束符'\0'的ascii值是0,其他字元的ascii值都大於0,所以字串處理函式(如 strcpy(),strcmp(),strcat()等)總是使用以'\0'結束的字串。

舉個例子。編寫字串拷貝函式,功能類似與系統函式strcpy(char *d, char *s);。

// 版本1

char *strcopy(char s, char t)

s[i] = '\0';

return s;

}// 版本2

char *strcopy(char s, char t)

// 版本3

char *strcopy(char s, char t)

2樓:匿名使用者

while ( *str )相當於while ( (*str)!=0 )這樣迴圈滿足的條件就是在str沒有指向字串結尾的0時進行。

while ( str )相當於while ( str!=null )是對指標本身是否有效進行判斷,一般在開設指標時會寫:int *str=null;如果判斷str的內容不是null的話,該指標一定是被初始化好了的,可以使用,否則就是非法指標。

3樓:匿名使用者

就是判斷一下str指向的資料,進行while迴圈啊

下面那個是死迴圈吧,因為str是指標,儲存的資料時不可能為零的

4樓:匿名使用者

while(*str) 是指str這個指標指向的int型元素是否為0,

while(str) 是指str這個指標本身是否為null。

while(*str)在c語言中表示什麼意思

5樓:匿名使用者

如果*str是字元型,則表示*str不為\0的時候做迴圈

如果*str是數值型,則表示*str不為0的時候做迴圈

6樓:匿名使用者

當str所指向的資料非0開始第一次迴圈,判斷第二次str所指向的資料是否為0,如果為0,則跳出迴圈,如果非0則繼續迴圈。。。

且如果*str是字元型,則表示*str不為\0的時候做迴圈

如果*str是數值型,則表示*str不為0的時候做迴圈

while(*str1)迴圈結束的條件是什麼

7樓:匿名使用者

while(*str1)相當於

while((*str1)!=0)

那麼當*str1==0的時候就結束了

8樓:匿名使用者

如果str1的值是1,執行while括號內的語句,否則跳出

9樓:匿名使用者

*str1 為0,也就是\0,非0都會執行括號內,不只是1

10樓:禮名刑秋寒

while

(str1[i])

其實就是while(str1[i]!=0)在c語言中!=0是可以省略不寫的,

在字串迴圈中,經常這麼寫

因為字串的結尾是0,所以不等於0時迴圈,等於0時就停止了

c語言問題,p是指標,我在一段**裡看到這個while(p){}; 這個p作為判斷條件是什麼意思?

11樓:匿名使用者

p如果不為零就一直執行,也就是p不為null。

12樓:匿名使用者

意思就是當p!=0的時候,可以一直進行,在上下文中應該有p=0或者其它等效的操作。

13樓:匿名使用者

p 不為null 就一直迴圈啊

C語言入門問題,新手C語言問題

你輸入a,b沒必要加個c進去吧!要加c,你也要給c輸入個值進去!輸入的時候格式最好保持一致,不然進行格式轉換,容易出錯!定義float 格式控制符為 f,int的格式控制符為 d 還有你看看你的scanf語句,第一個不是d,至少也是 d吧,可能是你提問寫錯了哈!正確寫法 有幾種 先寫一種給你看哈!m...

c語言的問題新手問題很簡單的,C語言的問題 新手問題 很簡單的

由程式中 k 017 得知這是一個八進位制數,而結果是已十進位制輸出所以把017化為十進位制是15,在 得16 g 111 得知這是一個十進位制數,而輸出要求是十六進位制數,111的十六進位制表示為6f,但是由於是g 是先操作後加加,所以輸出仍然是6f,然後再加,此時g應該是70.這裡應該注意 a,...

初級C語言條件判斷問題

1 if x 1 x 3 y 1 y 3 x 1 x 3 y 1 y 3 x 1 x 3 y 1 y 3 x 1 x 3 y 1 y 3 2 if abs x 1 abs x 3 abs y 1 abs y 3 這個題自己做不出來就不要學c c 了 額。我也不懂啊 書才看點點 呵呵 等我會了告訴你 ...