字串和陣列

時間 2022-04-05 07:40:07

1樓:匿名使用者

當然有問題了,因為'!='運算子的優先順序比 '=' 賦值運算子高,所以程式先執行*(t+i)!='\0'判斷,然後把結果賦值給*(s+i),所以修改程式如下:

void scopy(char *s,char *t)

這樣就能達到你想要的結果了。

2樓:匿名使用者

(1)while(*(s+i)=*(t+i)!='\0')改成:while((*(s+i)=*(t+i))!

='\0') 因為賦值=的優先順序低於!=,所以應該要加人括號。

(2) i++;

與}之間,加一個*(s+i)='\0'; 即加一個字串結束標誌。

3樓:來自神農谷倚欄待月的木瓜

有兩個問題,第一個是!=的優先順序高於=所以*(s+i)永遠等於*(t+i)!='\0'

的結果,第二個問題是你的str沒有初始化在使用某些編譯器(如gcc)的時候沒有初始化但是列印了所有的元素資料,沒有賦值的元素就會出亂碼

4樓:我喜歡看火影

while改成這樣:

while(*(t+i)!='\0')

*(s+i)='\0';

因為while(*(s+i)=*(t+i)!='\0')總是先做*(t+i)!='\0'

所以一直賦值為*(s+i)=1。也就是ascii的值為1,就是那個笑臉。

因此,你也可以改**為

while((*(s+i)=*(t+i))!='\0')i++;

就可以實現你要的功能了

5樓:時歡悅

#include

void scopy(char *s,char *t)

main()

6樓:匿名使用者

$pngname = $openid.'.png';

if(imagepng($qr, $pngname))

字元陣列和字串的區別,請問字串和字元陣列的區別是什麼

字元陣列沒有結束標誌 0 而字串則在末尾有結束標誌 0 在c中,字串就是末尾有字串結束標誌 0 的字元陣列。如果用gets 輸入,則會自動在末尾加上結束標誌 0 c語言中應該是沒有字串這種資料型別的,它只有字元型別,字串也就是字元陣列。不過gets 可以用來接受字串,但它需要提供字串的指標。子函式在...

C語言字串問題,C語言字元陣列與字串問題

字串初始化,如果逐個賦值的話,系統不是會自動新增 0 嗎不是。圖一就是長度為4的陣列,圖二長度為5圖三會是新增 0,但是是會把後面所有的都設為 0因為圖一和圖四不以 0結尾,所以不能用strlen和strcmp,會越界 圖四也可以用char str 4 stop 這樣賦值。如果不手動加長度就會是5了...

vb符串陣列型別不匹配,vb 字串陣列型別不匹配

首先你這個是一維陣列,如果只是想顯示陣列內容應該這樣寫 private sub form load dim i as integer i 0 dim text 2 text 0 第一句 text 1 第二句 text 2 第三句 for i 0 to ubound text msgbox text ...