|
string 轉(zhuǎn) CStringCString.format("%s", string.c_str());
char 轉(zhuǎn) CStringCString.format("%s", char*);
char 轉(zhuǎn) stringstring s(char *);
string 轉(zhuǎn) char *char *p = string.c_str();
CString 轉(zhuǎn) stringstring s(CString.GetBuffer());
1,string -> CStringCString.format("%s", string.c_str());用c_str()確實(shí)比data()要好.2,char -> stringstring s(char *);你的只能初始化,在不是初始化的地方最好還是用assign().3,CString -> stringstring s(CString.GetBuffer());GetBuffer()后一定要ReleaseBuffer(),否則就沒有釋放緩沖區(qū)所占的空間.
《C++標(biāo)準(zhǔn)函數(shù)庫》中說的有三個(gè)函數(shù)可以將字符串的內(nèi)容轉(zhuǎn)換為字符數(shù)組和C—string1.data(),返回沒有”\0“的字符串?dāng)?shù)組2,c_str(),返回有”\0“的字符串?dāng)?shù)組3,copy()
---------------------------------------------------------------
CString與int、char*、char[100]之間的轉(zhuǎn)換- -
CString與int、char*、char[100]之間的轉(zhuǎn)換- -
CString互轉(zhuǎn)int
將字符轉(zhuǎn)換為整數(shù),可以使用atoi、_atoi64或atol。而將數(shù)字轉(zhuǎn)換為CString變量,可以使用CString的Format函數(shù)。如CString s;int i = 64;s.Format("%d", i)Format函數(shù)的功能很強(qiáng),值得你研究一下。
void CStrDlg::OnButton1(){undefined// TODO: Add your control notification handler code hereCStringss="1212.12";int temp=atoi(ss);CString aa;aa.Format("%d",temp);AfxMessageBox("var is " + aa);}
sart.Format("%s",buf);
CString互轉(zhuǎn)char*
///char * TO cstringCString strtest;char * charpoint;charpoint="give string a value";strtest=charpoint;
///cstring TO char *charpoint=strtest.GetBuffer(strtest.GetLength());
標(biāo)準(zhǔn)C里沒有string,char *==char []==string
可以用CString.Format("%s",char *)這個(gè)方法來將char *轉(zhuǎn)成CString。要把CString轉(zhuǎn)成char *,用操作符(LPCSTR)CString就可以了。
CString轉(zhuǎn)換 char[100]
char a[100];CString str("aaaaaa");strncpy(a,(LPCTSTR)str,sizeof(a));
CString類型的轉(zhuǎn)換成int將字符轉(zhuǎn)換為整數(shù),可以使用atoi、_atoi64或atol。
//CString aaa = "16" ;//int int_chage = atoi((lpcstr)aaa) ;
而將數(shù)字轉(zhuǎn)換為CString變量,可以使用CString的Format函數(shù)。如CString s;int i = 64;s.Format("%d", i)Format函數(shù)的功能很強(qiáng),值得你研究一下。如果是使用char數(shù)組,也可以使用sprintf函數(shù)。
//CString ss="1212.12";//int temp=atoi(ss);//CString aa;//aa.Format("%d",temp);
數(shù)字->字符串除了用CString::Format,還有FormatV、sprintf和不需要借助于Afx的itoa
#include <stdlib.h>
int atoi(const char *nptr);long atol(const char *nptr);long long atoll(const char *nptr);long long atoq(const char *nptr);
string aa("aaa");
char *c=aa.c_str();
cannot convert from 'const char *' to 'char *'
const char *c=aa.c_str();
string.c_str()只能轉(zhuǎn)換成const char *,要轉(zhuǎn)成char *這樣寫:
string mngName;char t[200]; memset(t,0,200); strcpy(t,mngName.c_str());
|
|