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 ...