bstr t與CString相互轉換

2021-05-23 08:11:30 字數 3515 閱讀 6348

_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...