VS2010 CString型別轉換

2021-06-07 18:22:11 字數 3951 閱讀 1273

一、cstring 轉換為const char *

**:由於是2010,所以2005 08版本的方法貌似不能用了,貼乙個最新的方法,經測試可以使用。

若你工程預設是使用多位元組字符集,無需轉換。

否則,涉及unicode和ansi轉換。

cstring strtext = text("aaa");//strtext 必須是unicode編碼。

const char* strout;

char temp[0x100];

::wsprintfa(temp, "%ls", (lpctstr)strtext);

strout = temp;

strout就是你需要的

【原文**】

【附加乙個各種型別的轉換方法vs2005】

【附加乙個各種型別的轉換方法vs2008】

【附加乙個各種型別的轉換方法vs2010】

二、cstring,int,string,char*之間的轉換

**:vs2010 中 mfc::cstring 如何和int相互轉化

cstring ---->int

cstring str = _t("123");int i = _ttoi(str);

int ---->cstring***************int i = 123;cstring str ;str.format(_t("%d"), i);

cstring 轉換成 int float --vs2010,unicode下

float percentagefill,percentagefill_1,percentagefill_2;

int a1,a2,a3,a4;

a1 = (float)_ttoi(strvartest);

a2 = (float)_ttoi(strvarst);

a3 = (float)_ttoi(strvarsp);

a4 = (float)_ttoi(strvarst);

用atoi,可以通過,但是stra = l"100",atoi(stra);的轉換結果是1,顯示錯誤。所以用上面的方法。

vc6.0中轉換,不能保證vs2010中同樣湊效。

1 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()

// todo: add your control notification handler code here

cstring

ss="1212.12";

int temp=atoi(ss);

cstring aa;

aa.format("%d",temp);

afxmessagebox("var is " + aa);

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;

"%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());

C string型別(引用型別)

c string型別 引用型別 2016年03月31日 10 34 45 閱讀數 966 名稱 cts型別 說明string system.string unicode字串 string str1 hello string str2 world 這是乙個值型別的賦值,但string是乙個引用型別。s...

C string 型別(入門基礎)

用string 物件處理字串 用字元陣列處理字串時,常常會發生陣列越界的問題。因此c 標準模板庫中設計了 string 資料型別,專門處理字串。string 型別的變數就是專門用來處理字串 的,也叫 string 物件。string型別並不是c 語言的基本資料型別,而是c 標準模板庫中的乙個 類 在...

C string 特殊引用型別

c 有string關鍵字,在翻譯成.net類時,它就是system.string.有了它,像字串連線和字串複製這樣的操作就簡單了.1 string 是引用型別還是值型別 引用型別操作 當使用過載操作符 給string物件賦值時,string的物件是引用型別,它保留在堆上,而不是堆疊上.因此,當把乙個...