[問題] 字串copy後尾末出現亂碼
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
剛練習寫一個字串複製的程式,但印出的字串尾端出現亂碼
看結果是第一次字串複製就出問題,但看不太出來是那裡出了錯
希望得到的正確結果:
point char
point char
point char
程式跑出來的錯誤結果:
point char
point char= (不一定是=,有時是跑出Y或其他符號)
point char=
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
Dev-c++
有問題的code: (請善用置底文標色功能)
#include <stdio.h>
void strc(char *,char *);
int main(){
char des[10];
char des2[10];
char *ptr="point char";
strc(des,ptr);
strc(des2,des);
puts(des2);
system("pause");
return 0;
}
void strc(char *des,char *sour){
int i=0;
while( *(sour+i)!='\0'){
*(des+i)=*(sour+i);
i++;
}
puts(des);
printf("\n");
}
補充說明:
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.69.178.34
→
08/18 10:51, , 1F
08/18 10:51, 1F
有想過是這個問題,但兩個字元陣列加大也是有同樣的問題
※ 編輯: a1e 來自: 210.69.178.34 (08/18 10:53)
→
08/18 10:52, , 2F
08/18 10:52, 2F
→
08/18 10:53, , 3F
08/18 10:53, 3F
抓到問題了Orz,結果是我耍笨,原本有在跳出迴圈後
用*(des+i+1)='\0';來加'\0',第一次跑發現有問題,想說是不是'\0'在作怪
把他拿掉後還是有問題
剛剛想起來,我迴圈就跑到字串尾了再+1當然會出問題Orz
※ 編輯: a1e 來自: 210.69.178.34 (08/18 10:58)
→
08/18 12:24, , 4F
08/18 12:24, 4F
→
08/18 12:25, , 5F
08/18 12:25, 5F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章