[問題] C做字串互換

看板C_and_CPP作者 (不是我)時間7年前 (2016/09/06 09:59), 7年前編輯推噓13(13014)
留言27則, 18人參與, 最新討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) CodeBlocks 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 字串互換 餵入的資料(Input): apple dog 預期的正確結果(Expected Output): dog apple 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): 我宣告char a[100][1000],想交換其中a[0]和a[1]兩個字串, 想請問有沒有不用一個字元一個字元交換的方法。 {有試著用指標去做,但一直失敗QQ) -- ╭─╮ ──╮ ╭─┤╭╮ ╭╭─╮╮ ╭ │ │ │ ││││││ ││││ ╰─╮ ╭─┼╮╰─┼╯││││○││││ │ │ ││ │ ││││ ││││ ╰─╯ ╰─╯╰──╯ ╰╰╯╰─╯╰╯╯ 傻瓜,我們都一樣~~ ψsagwow -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.64.76 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1473127190.A.A75.html

09/06 10:02, , 1F
就跟變數一樣, 另外宣告一個字串 char temp[1000] 中介
09/06 10:02, 1F

09/06 10:02, , 2F
只不過不是 = 而是 strcpy
09/06 10:02, 2F

09/06 10:19, , 3F
不過strcpy實際上也是一個字一個字換吧@@
09/06 10:19, 3F

09/06 10:21, , 4F
memcpy/memmove
09/06 10:21, 4F

09/06 10:39, , 5F
用指標,直接把指標交換就好
09/06 10:39, 5F
有沒有詳細點的說明呢

09/06 12:00, , 6F
我覺得這宣告塞字串可能有問題
09/06 12:00, 6F

09/06 12:00, , 7F
不知道版主怎麼寫的code
09/06 12:00, 7F

09/06 12:03, , 8F
為啥會有問題 你換的人不是也在array裡?
09/06 12:03, 8F
我是要輸入好幾個字串,然後做排序,所以這樣宣告, 請問會有什麼樣的問題呢@@?

09/06 12:04, , 9F
應該是有guarantee input size吧 或是只關注怎麼寫演
09/06 12:04, 9F

09/06 12:04, , 10F
算法
09/06 12:04, 10F

09/06 12:05, , 11F
char* a[100] 或許才是你要的?
09/06 12:05, 11F

09/06 12:09, , 12F
指標是個好方法,你可以朝這方向研究看看
09/06 12:09, 12F

09/06 12:21, , 13F
一開始開二維陣列就搞錯方向了吧
09/06 12:21, 13F
這題其實是這樣的,輸入n個大數做排序,所以我才做a[100][1000]的宣告 由於小弟我還很菜,如果有什麼好方法歡迎提出^^a

09/06 12:29, , 14F
Dog和apple長度也不同,也無法一對一swap吧
09/06 12:29, 14F
※ 編輯: sagwow (140.113.64.76), 09/06/2016 12:47:47

09/06 13:30, , 15F
原來你不是給定的 我錯了Qq 你不知道字串有多長要小心
09/06 13:30, 15F

09/06 17:30, , 16F
你要不要把你寫的code貼上來?我們才能知道你的問題在哪裡
09/06 17:30, 16F
這是我的code:http://ideone.com/eySBm9 (沒貼成功的話麻煩再告知) 我的問題點是想知道在交換字串的部分有沒有更簡潔或更快的寫法, 而不用一個字元一個字元換。 (我交換字串的部分在24行~29行)

09/06 17:38, , 17F
使用指標 這樣如何 http://goo.gl/gHbn9e
09/06 17:38, 17F

09/06 17:55, , 18F
要寫成指標的陣列
09/06 17:55, 18F

09/06 18:00, , 19F
改成指標陣列 這樣如何 http://goo.gl/gHbn9e
09/06 18:00, 19F

09/06 18:20, , 20F
為何開二維陣列是搞錯方向
09/06 18:20, 20F

09/06 22:51, , 21F
練習兩顆星動態配置可以達成。
09/06 22:51, 21F
※ 編輯: sagwow (140.113.64.76), 09/07/2016 14:30:15

09/08 19:19, , 22F
宣告陣列就是代表不能用指標的方式互換...
09/08 19:19, 22F

09/09 11:31, , 23F
http://ideone.com/MHP1Wz 基於你的code下去改的
09/09 11:31, 23F

09/09 11:35, , 24F
阿 我忘記free...
09/09 11:35, 24F

09/09 11:37, , 25F
09/09 11:37, 25F

09/09 20:09, , 26F
用空白當split 存成string array 就可以用指標交換
09/09 20:09, 26F

09/10 01:21, , 27F
感謝!
09/10 01:21, 27F
文章代碼(AID): #1NpYCMfr (C_and_CPP)
文章代碼(AID): #1NpYCMfr (C_and_CPP)