看板 Programming 關於我們 聯絡資訊
完整 code: http://codepad.org/ySeXRSbF 關鍵部份: if( (s[i] >= 'A' and s[i] <= 'Z') || (s[i] >= 'a' and s[i] <= 'z') ){ char ch = (s[i] <= 'Z') ? 'A' : 'a'; s[i] = (s[i] + k - ch) % 26 + ch; } ※ 引述《woody3724 (woody)》之銘言: : 給一個字串,若遇到字母,則依照字母順序將它改成 k 個字母後的字母,且不改變大小寫 : 若超過 Z/z 則回頭從A/a算起 且 k 必定大於 0 且小於等於 9 : 附上26個字母讓大家方便查詢 : A B C D E F G H I J K L M N O P Q R S T U V W X Y Z : 例如字串為 x3W4jO/a 且 k = 6 則改成 d3C4pU/G : 我的寫法:https://i.imgur.com/XBIdN7s.jpg : 但是第 3~7 行 與 9~13 行重複性太高了,根本只差在第5行的 'Z' 與第11行的 'z' : 因此我改成 https://i.imgur.com/T4YPD3L.jpg : 但明顯是錯的,原因在23~26行的註解 : 不知道各位有沒有漂亮的寫法呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.223.48.185 ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1508343369.A.7FA.html
dannypsnl: 你的解法有錯誤 218.164.41.221 10/19 02:32
dannypsnl: 你的解法 218.164.41.221 10/19 02:32
dannypsnl: http://i.imgur.com/hU40IS9.jpg 218.164.41.221 10/19 02:32
dannypsnl: 測試方式 218.164.41.221 10/19 02:32
dannypsnl: http://i.imgur.com/iPFSfdo.jpg 218.164.41.221 10/19 02:32
dannypsnl: 測試結果 218.164.41.221 10/19 02:32
dannypsnl: http://i.imgur.com/Api0eYo.jpg 218.164.41.221 10/19 02:32
idiont: 我覺得錯的是你自己寫的function耶 111.82.191.166 10/19 07:10
idiont: 怎麼會輸出"\x80" 111.82.191.166 10/19 07:10
dannypsnl: 那是gtest輸出的結果 218.164.41.221 10/19 08:00
dannypsnl: 我一開始用if也是有測到不會過 218.164.41.221 10/19 08:00
idiont: 所以你覺得輸出"f3E4r0/i"是錯的結果嗎 111.82.191.166 10/19 08:04
idiont: 'x'的十六進位值是78 加上8變成80 會overf 111.82.191.166 10/19 08:16
idiont: low 應該是你沒有判斷到吧 輸出'f'應該才 111.82.191.166 10/19 08:16
idiont: 是正確的結果 111.82.191.166 10/19 08:16
dannypsnl: 我左邊用原原po的程式 114.27.4.241 10/19 08:33
dannypsnl: 我等等查qq 114.27.4.241 10/19 08:33
idiont: 原原po的程式判斷有沒有大於'z' 可是這時s 111.82.191.166 10/19 08:37
idiont: [i]的值因為overflow變成負的 所以if不成 111.82.191.166 10/19 08:37
idiont: 立 結果就錯了 111.82.191.166 10/19 08:37
dannypsnl: 第一支嗎? 114.27.4.241 10/19 08:40
dannypsnl: 看來是原原po的函式在k=8, 9的時候都會 114.27.4.241 10/19 08:46
dannypsnl: 溢位,我的錯 114.27.4.241 10/19 08:46
dannypsnl: c大程式才是對的 114.27.4.241 10/19 08:46
dannypsnl: http://codepad.org/NkWgxIrs 114.27.4.241 10/19 08:52
dannypsnl: 完整程式 114.27.4.241 10/19 08:52