码迷,mamicode.com
首页 > 编程语言 > 详细

实战c++中的string系列--std::string与MFC中CString的转换

时间:2015-12-12 14:01:47      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:

搞过MFC的人都知道cstring,给我们提供了很多便利的方法。

CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特别是对于纯C背景下走出来的程序员来说有点难以学习。

但是很多情况下,我们还是需要cstring和string的转换。
分两步:
1把cstring转为char数组
2根据char数组,构造自己的string(记得释放内存)

std::string CStringToSTDStr(const CString& theCStr)
{
    const int theCStrLen = theCStr.GetLength();
    char *buffer = (char*)malloc(sizeof(char)*(theCStrLen+1));
    memset((void*)buffer, 0, sizeof(buffer));
    WideCharToMultiByte(CP_UTF8, 0, static_cast<cstring>(theCStr).GetBuffer(), theCStrLen, buffer, sizeof(char)*(theCStrLen+1), NULL, NULL);

    std::string STDStr(buffer);
    free((void*)buffer);
    return STDStr;
}

而string转cstring那就很轻松了:

string str="abcde";
CString cstr(str.c_str());

实战c++中的string系列--std::string与MFC中CString的转换

标签:

原文地址:http://blog.csdn.net/wangshubo1989/article/details/50274079

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!