[問題] string 和 char*
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
問題(Question):
其實我的問題已經解決了,只是有點好奇所以上來發問。
問題是這樣:
有一個函式的其中一個引數是吃 char*,他並不吃 string這個結構
所以為了解決這個辦法我就這樣處理
string s_name;
//我把想要的字串運算存到s_name//
char *name = new char[s_name.size()];
for(int i=0;i<s_name.size();i++)
name[i] = s_name[i];
我覺得這樣很合理,不過這個程式執行完以後
name 裡面除了有s_name的內容以外,後面還多了一些亂碼
我後來試了半天覺得是new的問題,不過也沒有更好的解決方式
直到後來我發現 string結構裡面有 c_str()這個函式可以幫我轉
我就這樣寫
char *name = new char[s_name.size()+1];
strcpy (name, s_name.c_str());
問題就解決了
但我現在還是不清楚之前的問題是什麼??
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.158.169
→
09/28 22:51, , 1F
09/28 22:51, 1F
推
09/28 23:03, , 2F
09/28 23:03, 2F
→
09/28 23:04, , 3F
09/28 23:04, 3F
→
09/28 23:08, , 4F
09/28 23:08, 4F
XD +1 是我在C++ Reference 上找到的範例
推
09/29 01:31, , 5F
09/29 01:31, 5F
推
09/29 01:33, , 6F
09/29 01:33, 6F
→
09/29 01:52, , 7F
09/29 01:52, 7F
→
09/29 01:54, , 8F
09/29 01:54, 8F
→
09/29 01:55, , 9F
09/29 01:55, 9F
→
09/29 09:50, , 10F
09/29 09:50, 10F
→
09/29 09:52, , 11F
09/29 09:52, 11F
→
09/29 09:52, , 12F
09/29 09:52, 12F
我知道了,感謝大家的回答
※ 編輯: frank770504 來自: 220.133.158.169 (09/29 15:04)