[問題] 將 std::string 中的字元從 0 改為 1

看板C_and_CPP (C/C++)作者 (嘎抓)時間13年前 (2013/03/23 01:11), 編輯推噓2(2017)
留言19則, 7人參與, 最新討論串1/1
※ 引述《f74016085 (嘎抓)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) : 問題(Question): : 餵入的資料(Input): : 預期的正確結果(Expected Output): : 錯誤結果(Wrong Output): : 程式碼(Code):(請善用置底文網頁, 記得排版) : 補充說明(Supplement): : 請問各位 : 請問我想要檢查一個陣列 : 假設陣列有十個數字 1到10 : 我想要檢查其中只要是3的倍數通通換成0 : 請問該怎麼做比較好 : 我用的是C++ : 我有用for跟if來寫但是不行不知道為什麼 : 謝謝 #include <iostream> #include <string> using namespace std; int main() { int i; string a("10101"); for(i=0;i<5;i++) { if(a[i]=0){a[i]=1;} } for(int j=0;j<5;j++){ cout<<a[j]<<endl;} return 0; } 抱歉我寫的類似這樣 這個是要把0改成1 我用for一個一個查 用if判斷 似乎無腦 請高手賜教 幫幫忙謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.104.82

03/23 01:15, , 1F
if(a[i] == 0) 你寫=就會讓全部a[i]都變成0
03/23 01:15, 1F

03/23 01:16, , 2F
可是換過也一樣
03/23 01:16, 2F

03/23 01:17, , 3F
換過全都沒變一樣是10101
03/23 01:17, 3F

03/23 01:19, , 4F
感覺這個用這個判斷方式就錯了好像不該怎樣做但是我想
03/23 01:19, 4F

03/23 01:19, , 5F
不到其他方法
03/23 01:19, 5F

03/23 01:26, , 6F
你可以修文,不用在發一篇
03/23 01:26, 6F

03/23 01:27, , 7F
你上面宣告string,下面又用int方式判斷,一定會錯
03/23 01:27, 7F

03/23 01:27, , 8F
建議你可以把變數、for、if 章節複習一下
03/23 01:27, 8F

03/23 01:34, , 9F
if(a[i]=='0') { a[i]='1'; } <== 要用字元
03/23 01:34, 9F

03/23 09:10, , 10F
你哪一句是在判斷3的倍數?我懷疑你是沒頭沒腦亂抄code
03/23 09:10, 10F

03/23 10:48, , 11F
他內文說的跟標題完全無關
03/23 10:48, 11F

03/23 11:01, , 12F
哈哈哈我也不知道怎麼會這樣欸我標題一開始不是寫這樣
03/23 11:01, 12F

03/23 11:03, , 13F
謝謝幫我解答囉抱歉我也不知道我的標題怎改了
03/23 11:03, 13F

03/23 11:04, , 14F
我通常都會多寫幾個類似的程式來試看看
03/23 11:04, 14F

03/23 13:30, , 15F
為什麼要多寫幾個類似的程式?
03/23 13:30, 15F

03/23 13:30, , 16F
多把課本讀熟比較實在...
03/23 13:30, 16F

03/23 14:49, , 17F
把式子拆開看哪邊錯
03/23 14:49, 17F

03/23 14:58, , 18F
快去學 debuger 怎麼逐步執行跟看變數值...
03/23 14:58, 18F

03/23 15:03, , 19F
好的謝謝大家喔
03/23 15:03, 19F
文章代碼(AID): #1HJ92g1r (C_and_CPP)
文章代碼(AID): #1HJ92g1r (C_and_CPP)