推 loveflames:啊啊,比我早一步回 10/23 17:01
推 b98901056:我也想問一下(舉手) string資料儲存的方式 10/23 17:16
→ b98901056:是不是char* 最後面加一個\0呢 ? 10/23 17:17
推 LPH66:樓上想問 C++ 的 string? 那不一定 10/23 17:23
推 tomap41017:string實作看不同library會不同.. 10/23 17:25
推 purpose:就算是C,也該是好幾個char最後加一個值為\0的char 10/23 17:26
推 b98901056:是C++的沒錯 想問的是 #include<cstring> 怎麼存的 10/23 17:27
→ b98901056:不好意思沒說清楚@"@ 10/23 17:27
→ james732:cstring...? 10/23 17:29
→ b98901056:啊...手殘多打一個C ˇˇ" 10/23 17:30
→ purpose:裡面存的成員一堆,但一塊連續的記憶體來放char是免不了 10/23 17:36
→ purpose:至於有沒有\0,感覺有或沒有都無關緊要,應該吧 10/23 17:37
推 b98901056:感謝purpose大 這樣看起來要抓某一個char的&好像有困難 10/23 17:42
你無法確定那個字元物件是否於 string 變長之後還存
在, 存取資料應該用該類別的介面來存取([] 或是迭代
器)
→ james732:抓某一個char的&?你想要做的事情是什麼呢? 10/23 17:44
※ 編輯: loveme00835 來自: 140.121.197.115 (10/23 17:48)
推 b98901056:我想要用兩個char* 一個放這個string的結束位置 10/23 17:47
→ b98901056:令一個則可以指到這個string中任一個char的位置 10/23 17:48
string::iterator 可以達成你要的功能, 雖然其操作跟
隨機存取指標很像, 但是實際上有可能不是
※ 編輯: loveme00835 來自: 140.121.197.115 (10/23 17:50)
→ LPH66:這正是 iterator 想達成的目標: 用類似指標的操作隱藏下面 10/23 17:51
→ LPH66:實際上的複雜操作 10/23 17:51
推 b98901056:感謝loveme00835大 先試試看@.@ 10/23 17:52
→ b98901056: +LPH66大 10/23 17:52
記住一點: 字串的大小如果有變, 所有的迭代器都可能
因為記憶體重配置而失效, 所以每次存取都
要呼叫 begin/end 再算一次
※ 編輯: loveme00835 來自: 140.121.197.115 (10/23 17:58)
推 b98901056:謝謝各位ˇˇ" 問題已解決 10/23 18:00
→ b98901056:原來string裡面就有這個function了 Q.Q 10/23 18:02
→ b98901056:那如果不知道有這功能 想破頭也想不出來吧(就是在下 淚) 10/23 18:03
推 loveflames:所以像cplusplus這種網站就很好用 10/23 18:05
推 b98901056:(筆記) 10/23 18:07
→ purpose:他舉了*(取值)的例子,並不是真的對記憶體位址取值,而是 10/23 18:11
→ purpose:傳回資料成員 10/23 18:11
推 b98901056:要謝的人太多 那就謝天吧(汗 10/23 18:13