從CString到char 怎麼做安全

2021-05-22 00:37:53 字數 1811 閱讀 2805

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環境下執行時會報各種各樣的錯誤,這裡總結了...