看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《conan77420 (人生就是不停的戰鬥)》之銘言: : void finalstate(char data[],char rule[],char temp[]) : {int c=0; : int length=strlen(data); : for(int i=0,j=0,k=0 ; i<length-1 ; i++) : { : while(data[j]!=rule[i]) //似乎是這個while有問題 : { temp[k++]=data[j++];} : temp[k++]=data[j++]; j,k走到某個預期位置. : k=0; k回頭從頭開始. k < or = j : while(j>=0) : { data[j--]=temp[k++];} k往j移動,同時j往k移動. (備份資料倒著貼回去?) 這樣的動作不是你要的. 你要的是像: k = 1; while (k <= j) { data[k] = temp[k]; k++; } data[0] = rule[i]; : k=0;j=0 ; : } : printf("%s",data); : } : 我的執行結果會有問題,不是出現亂碼就是程式跑一下就將視窗關閉 : 目前debug覺得應該是第一個while有問題 : 請問該如何修改? : 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.160.215.118 ※ 編輯: yauhh 來自: 218.160.215.118 (06/11 06:23)
conan77420:雖然不是用這方法,後來還是做出來了XD 06/11 08:26
conan77420:我的length應該用rule的才對 06/11 08:27
yauhh:你確定資料沒有倒著貼去? 06/11 10:29