一个简单的问题 望大家指点

ljbebee 2006-07-12 12:51:01
想问一下
在vc++中能不能或怎样才能把CString类型转化为char 或char*????
...全文
184 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xqk 2006-07-13
  • 打赏
  • 举报
回复
CString str = "";
char *p = str.GetBuffer(0);
Alan S1 2006-07-13
  • 打赏
  • 举报
回复
char[]->CString的方法:
char abc[]="hellooooo";
CString str;
str.Format("%s",abc);
-----------------
char * ->CString
CString aa;
char *szText = NULL;
int len = aa.GetLength();
szText = new char[len];
memcpy( szText, aa.GetBuffer(len), aa.GetLength() );
aa.ReleaseBuffer();
skinppLoadSkin(szText);
-----------------
CString->char的方法:
char abc[100];
CString str = "hellooooo";
strcpy(abc,str);
-----------------
CString和string之间转换:
string a;
CString b;
a = (LPCTSTR)b;
b = a.c_str();


CString strA = "A";
std::string strB = "B";

strA = strB.data(); // CString -> string
strB = LPCSTR(strA); // string -> CString
jinweifu 2006-07-12
  • 打赏
  • 举报
回复
五、BSTR、char*和CString转换

  (1) char*转换成CString

  若将char*转换成CString,除了直接赋值外,还可使用CString::Format进行。例如:

char chArray[] = "This is a test";
char * p = "This is a test";

  或

LPSTR p = "This is a test";

  或在已定义Unicode应的用程序中

TCHAR * p = _T("This is a test");

  或

LPTSTR p = _T("This is a test");
CString theString = chArray;
theString.Format(_T("%s"), chArray);
theString = p;
(2) 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成员函数

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧