C 常用資料型別轉換

2021-06-11 08:05:57 字數 2532 閱讀 2165

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

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);

資料型別轉換(常用)

一般分為強制轉換和隱式轉換兩種,隱式轉換使用的方法一般為number string boolean 一 數值型別轉換 1 數值型別轉字串型別 1 型別強制轉換 var a 10 var b sting a 2 利用隱式轉換方式,根據運算特徵來轉換,隱式轉換字串回自動執行string var a 10...

常用資料型別轉換

位元組順序 基礎資料型別之間的轉換 在上位機開發過程中,會面對各種資料型別,而各種資料型別之間的轉換是很多初學者非常頭疼的。本章內容主要是介紹各種常用的資料型別及其之間的相互轉換。bit bool 位 1 0 1 byte byte 位元組 8 0 255 short short 有符號16位整數 ...

C 常用資料型別間的轉換

資料型別有很多種,資料型別間的轉換也是有很多的方法,如果不細心整理的話等到用的時候再查就會顯得很浪費時間,所以決心整理出這篇博文。主要是講解常用資料型別之間的轉換方法以及常見資料型別所佔位元組數。位元組資料型別與其它資料型別間的轉換方法主要放在bitconverter類中 其它資料型別轉換為位元組型...