請教c 語言的執行怪現象

看板Programming作者時間18年前 (2007/03/20 02:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/6 (看更多)
請教一下各位前輩... 以下有個C程式(寫得不是很好啦,但可以跑), 執行結果在resulted string的尾巴會多出4個字元, 請問那是怎麼回事?要如何修改才不會跑出那4個字元? 謝謝囉~~ ps. 我用Dev C++4.9.9.2跑的 #include <stdio.h> #include <string.h> int main() { int i,j; char origin[4]; char transfer(char *); scanf("%s",origin); printf("original string: %s\n",origin); for(i=0;i<4;i++) { result[i]=transfer(&origin[i]); printf("resulted string: %s\n",result); } printf("resulted string: %s\n",result); system("pause"); } char transfer(char *o) { char table[7][7]={{'a','b','c','d','e','f','g'}, {'b','c','d','e','f','g','a'}, {'c','d','e','f','g','a','b'}, {'d','e','f','g','a','b','c'}, {'e','f','g','a','b','c','d'}, {'f','g','a','b','c','d','e'}, {'g','a','b','c','d','e','f'}}; char r; if(*o==table[0][0]) r=table[1][0]; else if(*o==table[0][1]) r=table[1][1]; else if(*o==table[0][2]) r=table[1][2]; else if(*o==table[0][3]) r=table[1][3]; else if(*o==table[0][4]) r=table[1][4]; else if(*o==table[0][5]) r=table[1][5]; else if(*o==table[0][6]) r=table[1][6]; return(r); } -- ╭╢師大資訊白色情迷╟┬─ ⊙ Origin : snow.ice.ntnu.edu.tw ├╨→ 140.122.77.49←╜╰─ ☆ From : 59-117-35-53.dynamic.hinet.net
文章代碼(AID): #15_i_W00 (Programming)
文章代碼(AID): #15_i_W00 (Programming)