string轉char* :
把string轉換為char
*有3中方法:
1.
data
如:
string str="abc";
char* p = (char*)str.data();
2.c_str
如:
string str ="gdfd";
char *p = str.c_str();
3.
copy
如:string str = "hello";
char p[40];
str.copy(p,5,0);
*(p+5)='\0';
char*轉string
string轉換為char*,可以使用string提供的函式
c_str
() ,或是函式data(),data除了返回字串內容外,
不附加結束符'\0',而
c_str
()返回乙個以『\0』結尾的字元陣列.
1. 寬位元組時:
cstring str1 = "123";
char *p = (lpstr)(lpcstr) str1; 強轉
還可以:
cstring str1 = "123";
char *t1 = str1.getbuffer(str1.getlength());
2.unicode
cstring str1 = _t("123");
int len = widechartomultibyte(cp_acp,0,str1,-1,null,0,null,null);
char *ptxttemp = new char[len+1];
widechartomultibyte(cp_acp,0,str1,-1,ptxttemp,len,null,null);
//.......
delete ptxttemp;
char *str="aaaa";
cstring str1(str);
string s(cstring.getbuffer());
getbuffer()後一定要releasebuffer(),否則就沒有釋放緩衝區所佔的空間
cstring.format("%s",string.c_str());
寬位元組下:
cstring str1="123";
int i = atoi(str1);
unicode:
cstring str2 = _t("100");
int i;
swscanf(str2,_t("%d"),&i);
int i = 100;
cstring str;
str.format("%d",i);
方法1:
cstring strfilename;
lpcwstr lpcwstr = strfilename.allocsysstring();
方法2:
cstring str=_t("teststr");
uses_conversion;
lpcwstr lpcwstr = a2cw((lpcstr)str);
lpcwstr lpcwstr = l"testwstr";
cstring str(lpcwstr);
cstring str;
lpwstr lpstr = (lpwstr)(lpcwstr)str;
方法1:
cstring strfilename;
lpstr lpstr = strfilename.getbuffer();
strfilename.releasebuffer();
方法2:
lpstr lpstr = (lpstr)(lpcstr)strfimename;
lpstr lpstr = l"teststr";
cstring str(lpstr);
cstring str;
str = .....; // whatever
bstr bstr = str.allocsysstring();
unicode下:
cstring convert(bstr bstr)
寬位元組下:
cstring convert(bstr b)
1、通過multibytetowidechar函式轉換
view plain
co
char* szstr = "測試字串";
wchar wszclassname[256];
memset(wszclassname,0,sizeof(wszclassname));
multibytetowidechar(cp_acp,0,szstr,strlen(szstr)+1,wszclassname,
sizeof(wszclassname)/sizeof(wszclassname[0]));
2、通過t2w轉換巨集
char* szstr = "測試字串";
cstring str = cstring(szstr);
uses_conversion;
lpcwstr wszclassname = new wchar[str.getlength()+1];
wcscpy((lptstr)wszclassname,t2w((lptstr)str.getbuffer(null)));
str.releasebuffer();
3、通過a2cw轉
char* szstr = "測試字串";
cstring str = cstring(szstr);
uses_conversion;
lpcwstr wszclassname = a2cw(w2a(str));
str.releasebuffer();
以上是在unicode狀態下 OC裡面的類型別
比如說volume v1,v2 v1和v2都是volume型別,實際上就是乙個指標,如果把v1賦值給v2後,那麼v2和v1有相同的屬性 返回值為id的型別的方法中,如果出錯的話,一般會返回nil 呼叫端會採用如下語句來判斷方法呼叫是否成功,if object nil 或者if object 或者直接...
python裡面的集合型別及操作
集合型別定義 集合是多個元素的無序組合,集合元素之間無序,且無法修改,不能存在相同的元素 a b c set pypy12345 print a print b print c 輸出結果 這體現了建立集合型別的方式為 或set 集合操作符 這個和數學中的類似 就是並差交補 操作符及應用 描述s t ...
C裡面的型別位元組長度和範圍
char 1個位元組8位 short 2個位元組16位 int 4個位元組32位 long 4個位元組 long long 8個位元組 指標 4個位元組 char 1個位元組 short 2個位元組 int 4個位元組 long 8個位元組 long long 8個位元組 指標 8個位元組 char...