1.首先 char* 转 string是可以直接赋值的
char a[4]="abc";
string aa = a;
2.string 转 char[]
虽然可以通过 str.data 或者 string .c_str() 的方式,但是都为const char*类型
则需要char *strcpy(char *dst, const char *src);
也可以使用 memcpy(cPath, sImgFileName.c_str(), sImgFileName.length());
or
1 string str="hmmm"; 2 char p[50]; 3 str.copy(p, str.length(), 0);//
3. char*转 CString
推荐为 strData.Format("%s", pData ); //ANSI
4.CString 转 char*
char *p =(LPSTR)(LPCSTR)str1; const char* p = (LPCTSTR)str;
char* chs=cstr.getbuffer(0);
charSource = (char*)strSource.GetBuffer(strSource.GetLength())
5.string 转 CString
string = CString.format
6.CString 转 string
- str=cstr3.GetBuffer(0); (利用了 char* 转 string )
7.补充一种格式化的copy
_snprintf(cTime, 30, "[%04d-%02d-%02d %02d:%02d:%02d]",
currTime.GetYear(), currTime.GetMonth(), currTime.GetDay(),
currTime.GetHour(), currTime.GetMinute(), currTime.GetSecond());
sprintf(strImageDir,"%s/%s",cfiledir,outfloder);