[問題] c++字串取代,助教給的程式碼看不懂

看板C_and_CPP (C/C++)作者 (K.L)時間16年前 (2010/03/21 00:33), 編輯推噓1(1020)
留言21則, 3人參與, 最新討論串1/5 (看更多)
抱歉今天發了很多次文章 也問過同學了@_@,不過有些地方還是不懂 題目大意 將一文字檔內的連續3個a 換成 bbb 例 aa aa aaabbb bbbbbb bababa bababa cad cad 卡在下面的for處 以及n的部分 還有while 中間如何取代的地方 他的for 放在while 外面 那跟n 與a的修改有關嗎? #include<iostream> #include<fstream> using namespace std; using std::cout; int main () { ifstream Input; ofstream Output; int n=0; char ch; Output.open("output.txt"); Input.open("inpit.txt"); if(!Input) { Output<<"檔案開啟失敗"; return 0; } while (Input.get(ch)) { 這邊我想請問一下 要如何做到 邊讀邊修改這個動作? 它不是一個字一個字讀進去嗎? 我用一個counter去數 數到第三個時 要修改的話 有辦法往後退三個字元再換成b嗎? } // for (int i=0; i<n; i++) // Output<<'a'; Input.close(); Output.close(); return 0; } 謝謝各位 ! 如有違反版歸自刪 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.191.88

03/21 00:42, , 1F
可以用regex嗎XD
03/21 00:42, 1F

03/21 00:43, , 2F
@_@ 不知道耶 助教不知道給不給對
03/21 00:43, 2F

03/21 00:44, , 3F
個人覺得去問清楚助教最後for output 'a'那段, 我實在
03/21 00:44, 3F

03/21 00:45, , 4F
不覺得那東西有什麼用, 是我就n=0把它skip掉, 在while
03/21 00:45, 4F

03/21 00:45, , 5F
裡自己寫完整的東西, 反正while{}內可以自己宣告變數~_~
03/21 00:45, 5F

03/21 00:46, , 6F
基本上作法也不難, 讀到非'a'的char就直接寫到output,
03/21 00:46, 6F

03/21 00:46, , 7F
想請問v大取代的方法 如果counter算到三 要取代時 位置
03/21 00:46, 7F

03/21 00:46, , 8F
讀到'a', 就再多讀下一個, 又是'a'就再下一個, 集滿三
03/21 00:46, 8F

03/21 00:46, , 9F
還會是原本的位置嘛@@?
03/21 00:46, 9F

03/21 00:47, , 10F
個'a'就送"bbb"一份給output, 不然就把沒集滿的照樣吐給
03/21 00:47, 10F

03/21 00:47, , 11F
output, 這在while裡就做得完了XD
03/21 00:47, 11F

03/21 00:48, , 12F
讀到a的時候先用buffer存著 如果有連續三個a就送出 沒有就
03/21 00:48, 12F

03/21 00:48, , 13F
input與output是兩個獨立的file, 你只要控制寫出output
03/21 00:48, 13F

03/21 00:48, , 14F
如果有連續三個a就送出三個b 沒有的話就把buffer送出
03/21 00:48, 14F

03/21 00:49, , 15F
的時機就夠了, 關鍵就在獨到非a就一進一出, 讀到a就先記
03/21 00:49, 15F

03/21 00:49, , 16F
下來, 看看後面是換bbb出去還是把記下來的原樣送出去.
03/21 00:49, 16F

03/21 00:50, , 17F
差不多就這樣....
03/21 00:50, 17F

03/21 00:51, , 18F
只有個問題, aaaa是怎麼換?? bbba? bbbb? 還是都不換??
03/21 00:51, 18F

03/21 00:51, , 19F
我的方法只適用第一種換成bbba, 其他換法要加些處理....
03/21 00:51, 19F

03/21 00:52, , 20F
嗯嗯 我了解了 謝謝 兩位大師解答
03/21 00:52, 20F

03/21 00:53, , 21F
aaaa應該是換成bbba 我猜啦@_@
03/21 00:53, 21F
文章代碼(AID): #1BfFZFRf (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1BfFZFRf (C_and_CPP)