VS2013各種型別轉換

2021-06-29 03:09:51 字數 1827 閱讀 6785

一種方法:

cstring str=_t("這是我的測試程式。");

// 先得到要轉換為字元的長度

const size_t strsize=(str.getlength()+1)*2; // 寬字元的長度;

char * pstr= new char[strsize]; //分配空間;

size_t sz=0;

wcstombs_s(&sz,pstr,strsize,str,_truncate);

int n=atoi(const char*)pstr); // 字串已經由原來的cstring 轉換成了 const char*

//沒有這番轉換會報錯,無法將lpctstr或cstring 轉換為const char*

另一種:

const char * a;

cstring b;

//a=b;//不存在從csring到const char *的適當轉換函式

a=(const char *)b.getbuffer();

cstring m_strsql;

cstring m_strseek;//一編輯框關聯的成員變數

//m_strsql.format("book_name'%s'",m_strseek);//報錯,不能將引數 1 從「const char [14]」轉換為「const wchar_t *」

解決方法:

修改為:m_strsql.format(l"book_name'%s'",m_strseek);或

m_strsql.format(_t("book_name\'%s\'"),m_strseek);

char 占用乙個位元組 , wchar_t占用兩個位元組。所以要轉換一下。

不管是不是用unicode,都使用_t("")巨集比較好,因為_t("")會自己轉換

const char * 到cstring可以進行直接轉換。

const char * a;

cstring b;

b=a;//通過

string str=「hello中文」;

cstring cstr=str.c_str();

string a;

char* b;

也可以直接賦值

string s;

char *p = "adghrtyh";

s = p;

cout << s << endl;同上

有2個函式可以運用。

乙個是.c_str(),乙個是data成員函式。

string s1 = "abcdeg";

const char *k = s1.c_str();

const char *t = s1.data();

printf("%s%s",k,t);

cout<

用string的乙個成員函式copy實現

string s1 = "abcdefg";

char *data;

int len = s1.length();

data = (char *)malloc((len + 1)*sizeof(char));

s1.copy(data, len, 0);

data[len] = '\0';

printf("%s", data);

cout << data;

這個由於我們知道string的長度,可以根據length()函式得到,又可以根據下標直接訪問,所以用乙個迴圈就可以賦值了。

這樣的轉換不可直接賦值。

string pp = "dagah";

char p[8];

int i;

for( i=0;i

各種型別的轉換

int i 100 long l 2001 float f 300.2 double d 12345.119 char username csdn char temp 200 char buf cstring str variant t v1 bstr t v2 一 其它資料型別轉換為字串 二 字串...

python各種型別轉換

int x base 將x轉換為乙個整數 long x base 將x轉換為乙個長整數 float x 將x轉換到乙個浮點數 complex real imag 建立乙個複數 str x 將物件 x 轉換為字串 repr x 將物件 x 轉換為表示式字串 eval str 用來計算在字串中的有效py...

python各種型別轉換

python int x base 將x轉換為乙個整數 long x base 將x轉換為乙個長整數 float x 將x轉換到乙個浮點數 complex real imag 建立乙個複數 str x 將物件 x 轉換為字串 repr x 將物件 x 轉換為表示式字串 eval str 用來計算在字...