1.cstring s1="ad";
char s2[256];
strcpy(s2,s1);
2.strcpy(s2,s1.getbuffer(s1.getlength);
3.strcpy(s2,s1.getbuffer(0);
4.for(int i=0;i5.cstring 轉char
char temp="2、如何將char陣列裡的內容copy到cstring";
strcpy(m_chartocstring.getbuffer(strlen(temp)),temp);
m_chartocstring.releasebuffer();
afxmessagebox("char陣列轉化為cstring!是我親自寫的!",mb_ok);
updatedata(0);
6.cstring str1="piggyxp";
char *str=new char[str.getlength()+1];
strcpy(str,str1);
7.如果s1的長度太長會造成溢位,所以安全的方法是在使用strcpy()前先判斷一下:
cstring s1="ad";
char s2[256];
int len1 = s1.getlength();
if(len1 <= 256)
strcpy(s2,s1.getbuffer(0));
8.strcpy(s2,s1.getbuffer(s1.getlength);
s1.releasebuffer();
9.strcpy(strchar,(lpstr)(lpctstr)strcstring); //cstring---->char
10.如果copy的話,建議申明字串用:
tchar* pbuf; // 或者用更好的lptstr和lpctstr,他們其實是tchar的指標
拷貝用 _tcscpy函式,他在ansi,unicode環境下都能很好工作,避免用strcpy.
cstring str; // 目標字串
int _touse; // 需要使用的字元個數
lptstr tmp = str.getbuffersetlength(_touse); // 得到tchar*
// ... 使用
str.releasebuffer(); // 使用完畢
11.見過一位前輩這樣寫的:
cstring str = "heloo";
char *chr = new char(str.getlength()+1);
memcpy(chr,str.getlength()+1,str.getlength()+1);
memcpy是不是比strcpy安全?
學習ing...
應該是memcpy(chr,str.getbuffer(str.getlength()),str.getlength()+1);
12.一定要注意是否為unicode
cstring s1="ad";
int len = s1.getlength();
char s2[256];
memset((void*)s2,0,sizeof(char) * 256);
#ifdef _unicode
widechartomultibyte(cp_acp,0,(lpctstr)s1,-1,s2,255,null,null);
#else
len = (len < 255)? len : 255;
strncpy(s2,(lpctstr)s1,len);
#endif
從CString到char 怎麼做安全
從cstring到char 怎麼做安全收藏 1.cstring s1 ad char s2 256 strcpy s2,s1 2.strcpy s2,s1.getbuffer s1.getlength 3.strcpy s2,s1.getbuffer 0 4.for int i 0 i5.cstri...
c string互換char總結
string有2個函式可以用來轉換。c str data 這倆個函式返回的都是const char 轉換成char 需要使用strcpy函式。直接賦值 直接賦值。這樣輸出時只能使用std cout來執行吧。可以直接賦值。但是也會出現上面的問題。需要同樣的處理。不可直接賦值,單個取出,賦給char 附...
Unicode下CString與char 轉換
在visual c net2005中,預設的字符集形式是unicode,但在vc6.0等工程中,預設的字符集形式是多位元組字符集 mbcs multi byte character set 這樣導致在vc6.0中非常簡單實用的各類字元操作和函式在vs2005環境下執行時會報各種各樣的錯誤,這裡總結了...