轉載:
1.https://blog.csdn.net/Joker_mw/article/details/79127790
2.https://blog.csdn.net/shelleyhuhu/article/details/5406703
char* 轉換成string
char *pChar;
string str=pChar;
string轉換成LPCSTR
LPCSTR lpcStr=str.c_str();
string轉換成char*
string str;
char * pchar;
int len = str.length();
pchar = (char *)malloc((len + 1)*sizeof(char));
str.copy(pchar, len, 0);
*(pchar + len) = '\0';//注意手動加結束符!!!
https://blog.csdn.net/shelleyhuhu/article/details/5406703
1,LPCTSTR類型
L
表示long指針 這是為了兼容Windows 3.1等16位操作系統遺留下來的。
P
表示這是一個指針
C
表示是一個常量
T
表示_T宏,這個宏用來表示你的字符是否使用UNICODE, 如果你的程序定義了UNICODE或者其他相關的宏, 有時候注意加 _T()
那么這個字符或者字符串將被作為UNICODE字符,否則就是標准的ANSI字符串。
STR
表示這個變量是一個字符串
所以LPCTSTR就表示一個指向常固定地址的可以根據一些宏定義改變語義的字符串。const char *
CString 轉LPCTSTR:
CString cStr;
const char *lpctStr=(LPCTSTR)cStr;
LPCTSTR轉CString:
LPCTSTR lpctStr;
CString cStr=lpctStr;
CString 類
CString對象提供了動態內存分配機制,它是通過“引用”機制來管理分配的內存塊,使用CString類可不指明內存大小,
CString會根據需要自行分配。
CSting類的常用操作:
1)、連接字符串
可以使用“+”連接兩個字符串。
使用Insert函數可以在字符串的任意位置插入新的字符串,如下面的代碼:
CString str1(“天王寶馬”);
str1.Insert(4,“蓋地虎/n");
str1+="鎮河妖”;
AfxMessageBox(str1);
一個漢字在CString對象中的長度為2。
2)、比較字符串
可以使用Compare()函數比較兩個字符串的大小。
int result=str1.Compare(str2);
按照對應的ASCII值比較、、、。
3)、查找字符串
可以使用CString類的Find()函數從字符串的指定位置開始,查找指定字符或字符串,返回字符所在字符串的位置。
4)、提取字符串
使用CString類的Left()、Mid()和Right()函數,可以從一個字符串的左邊,中間,右邊位置開始提取字符串。。
5)、變換字符串
使用CString類的MakeUpper()。MakeLower()函數可以變換字符串的大小寫。
使用TrimLeft()和TrimRight()函數去除字符串前后的空格、、
CString類還有其他的一些常用的操作,如替換、刪除制定字符串、提取、處理單個字符串等等。
CString的格式化與類型轉換:
使用CString類的Format()函數可以將數字格式化為字符串。
Format()函數的調用的一般形式為:
str.Format(“格式控制字符串”,輸出內容)
格式字符串的一半形式為:
【標志】【輸出最小寬度】【精度】【長度】轉換說明符
CString類型字符串也可以轉換為其他類型
(1)轉換為整型。可以使用atoi()函數靚啊CSring數字字符轉換為整型。
(2)轉換為char *類型。
幾種方法:使用GetBuffer()函數:返回一個CString對象的指針
使用memcpy()函數;
使用LPCTSTR強制類型轉換
