cstring越界_CString和char*的转换
生活随笔
收集整理的這篇文章主要介紹了
cstring越界_CString和char*的转换
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
方法1、const char*轉(zhuǎn)換
CString str;
const char *p=(const char*)str;
const char *表示你對字符串只讀,所以這時候可以直接獲取。
方法2、使用強制類型轉(zhuǎn)換
如需要對字符串寫權(quán)限,則:
CString str;
char *p = (char *)(const char *)str;
方法3、使用GetBuffer(int num)
使用函數(shù)的好處是可以通過num值加大字符串緩存區(qū)的長度,方便后續(xù)的操作。
CString str;
char *p = str.GetBuffer(0);
...
str .ReleaseBuffer();
GetBuffer的參數(shù)為0表示獲得的緩存區(qū)為原樣大小,你保證不會越界操作。如果你估計到后續(xù)語句會導(dǎo)致字符串長度超過原有長度,則填寫參數(shù):GetBuffer(估計的需要大小)。
更多說明:
以上為ansi編程環(huán)境,如果需要自適應(yīng)unicode,則用
LPSTR(即TCHAR*)表示 char *
LPCTSTR(即const TCHAR*)?表示 const char *
總結(jié)
以上是生活随笔為你收集整理的cstring越界_CString和char*的转换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 云南贵州是一个省吗(云南和贵州都是省吗)
- 下一篇: ios率土之滨电脑能玩吗(率土之滨ios