[問題] 迴文

看板C_and_CPP (C/C++)作者 (豆花伯爵)時間13年前 (2011/08/20 16:23), 編輯推噓6(609)
留言15則, 7人參與, 最新討論串2/5 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) code::block 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 爲什麼可以直接相加? 程式碼(Code):(請善用置底文網頁, 記得排版) #include <iostream> #include <string> using namespace std; int main() { string s1 ,s2; while(cin >> s1 ) { for(int i = 1 ; i <= s1.length() ; i++) { s2 += s1[s1.length()-i] ; } if(s1==s2) cout << "yes" << endl ; else cout << "no" << endl ; s2 = ""; } return 0; } 補充說明(Supplement): 小弟在高中生解題系統上練習,本來是用getline的想法去寫 可是在google後找到這段程式碼,請教各位先進 爲什麼可以直接s2+=s1[s1.lenght()-1],好抽象 懇請各位解惑 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.122.14.27

08/20 16:43, , 1F
因為string這個class有對+=進行operator overload
08/20 16:43, 1F

08/20 16:43, , 2F
所以當你對string使用+=時,實際上是去呼叫另一個函式
08/20 16:43, 2F

08/20 16:43, , 3F
然後真正的字串操作是在那個函式中處理的
08/20 16:43, 3F

08/20 16:45, , 4F
請問"那個函式"是指哪個不大懂?
08/20 16:45, 4F

08/20 16:47, , 5F
是指說operator嗎
08/20 16:47, 5F

08/20 16:49, , 6F
你有書嗎?去看operator overloading那部份應該就懂了
08/20 16:49, 6F

08/20 16:54, , 7F
謝謝,在努力研讀
08/20 16:54, 7F

08/20 17:27, , 8F
這的確很抽象 讀一下string class吧
08/20 17:27, 8F

08/20 17:39, , 9F
這段程式碼感覺蠻糟的...還是不要用比較好...
08/20 17:39, 9F

08/20 18:43, , 10F
迴文檢查有很多種寫法, 效率這麼低的我還是第一次看到...
08/20 18:43, 10F

08/20 18:44, , 11F
好吧說第一次看到有點太誇張了, 不過真的不是很好...
08/20 18:44, 11F

08/20 18:49, , 12F
string compare? string ==?
08/20 18:49, 12F

08/20 20:46, , 13F
uranusjr大大能否提供程式碼學習學習
08/20 20:46, 13F

08/20 23:13, , 14F
用char做比較好吧...
08/20 23:13, 14F

08/21 00:38, , 15F
對耶 沒想到
08/21 00:38, 15F
文章代碼(AID): #1EJsySYr (C_and_CPP)
討論串 (同標題文章)
以下文章回應了本文
2
3
完整討論串 (本文為第 2 之 5 篇):
4
4
6
15
2
3
2
14
1
11
文章代碼(AID): #1EJsySYr (C_and_CPP)