_bstr_t與cstring相互轉換
_bstr_t bstr;
cstring strsql;
cstring -> _bstr_t: bstr = (_bstr_t)strsql;
_bstr_t -> cstring: strsql = (lpcstr)bstr;
bstr寬字串與cstring相互轉換
bstr bstr;
cstring strsql;
cstring -> bstr: bstr = strsql.allocsysstring();
bstr -> cstring: strsql = (lpcstr)bstr;
1、_variant_t
(1)、一般傳給這3個指標的值都不是mfc直接支援的資料型別,而要用_variant_t轉換一下
_variant_t(xx)可以把大多數型別的變數轉換成適合的型別傳入:
(2)、_variant_t var;_variant_t -> long: (long)var;
_variant_t -> cstring: cstring strvalue = (lpcstr)_bstr_t(var);
cstring -> _variant_t: _variant_t(strsql);
cstring,int,string,char*之間的轉換
string 轉 cstring
cstring.format("%s", string.c_str());
char 轉 cstring
cstring.format("%s", char*);
char 轉 string
string s(char *);
string 轉 char *
char *p = string.c_str();
cstring 轉 string
string s(cstring.getbuffer());
1,string -> cstring
cstring.format("%s", string.c_str());
用c_str()確實比data()要好.
2,char -> string
string s(char *);
你的只能初始化,在不是初始化的地方最好還是用assign().
3,cstring -> string
string s(cstring.getbuffer());
getbuffer()後一定要releasebuffer(),否則就沒有釋放緩衝區所佔的空間.
《c++標準函式庫》中說的
有三個函式可以將字串的內容轉換為字元陣列和c—string
1.data(),返回沒有」/0「的字串陣列
2,c_str(),返回有」/0「的字串陣列
3,copy()
cstring互轉int
將字元轉換為整數,可以使用atoi、_atoi64或atol。
而將數字轉換為cstring變數,可以使用cstring的format函式。如
cstring s;
int i = 64;
s.format("%d", i)
format函式的功能很強,值得你研究一下。
void cstrdlg::onbutton1()
sart.format("%s",buf);
cstring互轉char*
///char * to cstring
cstring strtest;
char * charpoint;
charpoint="give string a value";
strtest=charpoint;
///cstring to char *
charpoint=strtest.getbuffer(strtest.getlength());
標準c裡沒有string,char *==char ==string
可以用cstring.format("%s",char *)這個方法來將char *轉成cstring。要把cstring轉成char *,用操作符(lpcstr)cstring就可以了。
cstring轉換 char[100]
char a[100];
cstring str("aaaaaa");
strncpy(a,(lpctstr)str,sizeof(a));
2 cstring型別的轉換成int
cstring型別的轉換成int
將字元轉換為整數,可以使用atoi、_atoi64或atol。
//cstring aaa = "16" ;
//int int_chage = atoi((lpcstr)aaa) ;
而將數字轉換為cstring變數,可以使用cstring的format函式。如
cstring s;
int i = 64;
s.format("%d", i)
format函式的功能很強,值得你研究一下。
如果是使用char陣列,也可以使用sprintf函式。
//cstring ss="1212.12";
//int temp=atoi(ss);
//cstring aa;
//aa.format("%d",temp);
數字->字串除了用cstring::format,還有formatv、sprintf和不需要借助於afx的itoa
3 char* 在裝int
#include
int atoi(const char *nptr);
long atol(const char *nptr);
long long atoll(const char *nptr);
long long atoq(const char *nptr);
4 cstring,int,string,char*之間的轉換
string aa("aaa");
char *c=aa.c_str();
cannot convert from 'const char *' to 'char *'
const char *c=aa.c_str();
5 cstring,int,string,char*之間的轉換
string.c_str()只能轉換成const char *,
要轉成char *這樣寫:
string mngname;
char t[200]; memset(t,0,200); strcpy(t,mngname.c_str());
CString與 bstr t進行比較的問題
在把cstring與 bstr t型別進行比較的時候,你會怎麼寫呢?常見的寫法有幾種 cstringstruid bstr tbstruid if struid bstruid.getbstr xx if struid lpctstr bstruid xx if struid.compare bst...
CTime與CString相互轉化
字型大小訂閱 一.ctime轉化為cstring ctime getcurrenttime cstring sztime tmscan.format y m d h m s 這樣得到的日期時間字串就是以 2006 11 27 23 30 59 的格式.這是不是很方便呢?取得ctime中的日期 cst...
CString與string的相互轉換
直接上 string cstr2str const cstring cstr int n cstr.getlength int len widechartomultibyte cp acp,0,cstr,cstr.getlength null,0,null,null widechartomultib...