一、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的物件是引用型別,它保留在堆上,而不是堆疊上.因此,當把乙個...