C 各資料型別的相互轉換 總結一

2021-06-02 16:58:37 字數 2532 閱讀 7224

一、其他資料型別轉化為字串

char temp[200];

1 短整型(int i)

itoa(i,temp,10); \\將i轉化為字串放入temp中,最後乙個數字表示十進位制

itoa(i,temp,2); \\將i轉化為字串放入temp中,最後乙個數字表示二進位制

2 長整形(long l)

ltoa(l,temp,10); \\將l轉化為字串放入temp中,最後乙個數字表示十進位制

二、從其它包含字串的變數中獲取指向該字串的指標

1 從cstring 到 char*  (強轉);

cstring str = "2012什麼年代";

char* buf = (lpstr)(lpctstr)str;

2 (使用strcpy)

cstring thestring(「this is a test」);

lptstr lpsz = new tchar[thestring.getlength()+1];

_tcscpy(lpsz,thestring);

需要說明的是,strcpy(或可移值unicode/mbcs的_tcscpy)的第二個引數是 const wchar_t* (unicode)或const char* (ansi),系統編譯器將會自動對其進行轉換。

3 (使用cstring::getbuffer)

cstring s(_t("this is a test"));

lptstr p = s.getbuffer();

//這裡新增使用p的**

if(p!=null) *p = _t('\0');

s.releasebuffer();

//使用完後及時釋放,以便能用其它的cstring成員函式

三、字串轉換為其它資料型別

1 char temp[200];

strcpy(temp,"123");

2 字串轉成短整形

int i = atoi(temp);

3 字串轉成長整形

long l = atol(temp);

4 字串轉成浮點數

double d = atof(temp);

四、其它資料型別轉換到cstring

1 使用cstring的函式 format("%x",***);

char temp[200];可以 cstring  str = temp;

五、bstr轉換成char*

1 使用convertbstrtostring;

#pragma comment(lib,"comsupp.lib")

int_tmain(int argc, _tchar* argv)

2 使用_bstr_t的賦值運算子過載。

_bstr_t b = bstrtext;

char* lpsztext2 = b;

六、char*轉換成bstr

1 使用sysallocstring等api函式。

bstr bstrtext = ::sysallocstring(l"test");

bstr bstrtext = ::sysallocstringlen(l"test",4);

bstr bstrtext = ::sysallocstringbytelen(l"test",4);

2 使用colevariant或_variant_t.

//colevariant strvar("this is a test");

_variant_t strvar("this is a test");

bstr bstrtext = strvar.bstrval;

3 使用_bstr_t,這是一種最簡單的方法。

bstr bstrtext = _bstr_t("this is a test");

4 使用ccombstr.

bstr bstrtext = ccombstr("this is a test");

或ccombstr bstr("this is a test");

bstr bstrtext = bstr.m_str;

5 使用convertstringtobstr。

char* lpsztext = "test";

bstr bstrtext = _com_util::convertstringtobstr(lpsztext);

七、cstring轉換成bstr

1 通常是通過使用 cstringt::allocsysstring 來實現。

cstring str("this is a test");

bstr bstrtext = str.allocsysstring();

……sysfreestring(bstrtext);//用完釋放

八、bstr轉換成cstring

1 bstr bstrtext = ::sysallocstring(l"test");

cstringa str;

str.empty();

str = bstrtext;

或cstring str(bstrtext);

各種資料型別的相互轉換

各種資料型別的相互轉換 char 與 const char 的轉換 char ch1 hello11 const char ch2 hello22 ch2 ch1 不報錯,但有警告 ch1 char ch2 char 轉換為 qstring 其實方法有很多中,我用的是 char a b qstrin...

C 資料型別及限制和相互轉換

c 資料型別包括有符無符整型 short,int,long,long long,int64 浮點型 float,double,long double 字元型 char,wchar t,char16 t,char32 t 相關限制資訊儲存在和中。除了傳統的初始化方式外,c 還有int a 23 或in...

java基本資料型別的相互轉換

int x 1 char c char x char c x int x int c xx valueof str 為short int long float double,str為string xx par xx str str 基本資料型別的包裝類 x tostring str x string...