格式:
輸出:
(1)不含中文的情況下:
cstring s("hello world");
wcout << "s=" << s.getstring() << endl;
wcout << "s=" << (lpctstr)s << endl;\\型別轉換
wcout << "s=" << s.getbuffer()<< endl;
含有中文的情況下需要新增:
wcout.imbue(std::locale("chs"));
如下cstring s("hello world");
wcout.imbue(std::locale("chs"));
wcout << "s=" << s.getstring() << endl;
wcout << "s=" << (lpctstr)s << endl;
wcout << "s=" << s.getbuffer()<< endl;
(2)cstring是unicode編碼
cstring a = "test";
printf("%s\n", a);//輸出test;
printf("%s\n", a);//輸出t;
指標:
型別轉換:
(1)lpctstr是把cstring型別的強制轉換為常字串 lpctstr相當於const char*;輸出 :例如 cstring str; 要用printf輸出str printf("%s",(lpctstr)str);
(2)cstring 值賦給已
分配記憶體
的char*
cstring cstr1 = "asddsd";(3)char、char*、string轉換成cstringint strlength = cstr1.getlength() + 1;
char *pvalue = new char[strlength];
strncpy(pvalue, cstr1, strlength);
char *ch = "hello";
string s = "wrold";
char chr="name";
cstring cstr1(ch), cstr2(s.c_str()), cstr3("program"), cstr4(chr);
cstr2.format("%s", s.c_str());
cstr2.format("%s", s.data());
c_str()和data()區別是:前者返回帶'/0'的字串,後者則返回不帶'/0'的字串.
(5)cstring轉換成char*
若將cstring類轉換成char*(lpstr)型別,常常使用下列三種方法:
方法一,使用強制轉換。例如:
cstring thestring( "this is a test" );
lptstr lpsz =(lptstr)(lpctstr)thestring;
方法二,使用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),系統編譯器將會自動對其進行轉換。
方法三,使用cstring::getbuffer。例如:
cstring s(_t("this is a test "));
lptstr p = s.getbuffer();
// 在這裡新增使用p的**
if(p != null) *p = _t('\0');
s.releasebuffer();
// 使用完後及時釋放,以便能使用其它的cstring成員函式
(6)cstring -> string
string s(cstring.getbuffer());
getbuffer()後一定要releasebuffer(),否則就沒有釋放緩衝區所佔的空間.
(7) cstring->char
strcpy_s(char[255], cstring.getbuffer());
sprintf_s(char[255], cstring.getbuffer());
附註:
mysql型別轉換c 型別轉換 C 型別轉換
一 簡介 型別轉換 把資料從一種型別轉換另一種型別 我們要求等號兩邊參與運算子必須型別一致,如果不一致,滿足下列條件會發生自動型別轉換或者隱式型別轉換。1.兩種型別相容 例如 int和double 相容 都是數字型別 2.目標型別大於源型別 double int 顯示型別轉換 1.兩種型別相相容 i...
java 型別轉換 強制型別轉換
今天在寫乙個demo時,碰到型別轉換問題。發現兩個不相干的class進行強制型別轉換編譯是不會通過的,但是。乙個class到乙個不相干的inte ce強制型別轉換是可以編譯通過的。可能有人感覺知道這沒什麼意義,但是感覺還是記錄下。雖然有自動型別轉換,以及強制型別轉換,但有時強制型別轉換不能通過時,可...
JS 型別轉換 強制型別轉換
js 型別轉換 強制型別轉換 一 parseint 將其他型別轉換成number型別的整數 注意 string number 1 字串中值的首字元必須是數字,轉換後才能得到具體的值 否則得到nan 2 只轉換從首字元開始的連續數字 如 2b345 轉換後只得到2 3 除了string,其他型別轉換後...