看板 C_and_CPP 關於我們 聯絡資訊
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) http://paste.bradleygill.com/index.php?paste_id=36041 這是我的Code 其中的一小段有邏輯錯誤的問題,我檢查不出來 希望得到的正確結果: ~略~ tmp=And check2=An. tmp=she check2=sh. ~略~ 程式跑出來的錯誤結果: 他跑出來的結果是 ~略~ tmp=And check2=Ano.. tmp=she check2=sho... tmp=is. check2=iso.... tmp=But check2=Buo..... tmp=they check2=the...... tmp=are check2=are....... tmp=not. check2=not........ 略的部份是正確的 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Dev C++ 有問題的code: (請善用置底文標色功能) 錯誤的程式碼區段為 while(fscanf(fp1,"%s",tmp)!=EOF){ strcpy(check1,tmp); strcpy(check2,"0"); strncpy(check2,tmp,strlen(tmp)-1);//tmp=And,check2=An printf("tmp=%s\n",tmp); strcat(check2,".");//check2=An. printf("check2=%s\n",check2); if(strcmp(check1,check2)==0){//too.==too. strcat(Sentence[i],check1); i++; }//end if else{ strcat(Sentence[i],check1); strcat(Sentence[i]," "); }//end else }//end while 補充說明: 我不知道如何修正code 更奇怪的是答案有的對有的錯 幫幫我好嗎 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.123.128.197
neville123:我想是strcat的問題 可是我實在不知道問題出在哪..= = 05/28 03:48
※ 編輯: chessjim 來自: 122.123.129.90 (05/28 05:28)
chessjim:很奇怪吧!?哈哈 05/28 05:35
Ross0916:因為 strncpy() 不會自己加 '\0' 啦 05/28 06:19
chessjim:謝謝Ross0916,但是又出現新問題了 05/28 09:21
chessjim:新問題我自己解決了,謝謝 05/28 09:24