实战c++中的string系列--std::string与MFC中CString的转换
2015-12-12 12:36
591 查看
搞过MFC的人都知道cstring,给我们提供了很多便利的方法。
CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特别是对于纯C背景下走出来的程序员来说有点难以学习。
但是很多情况下,我们还是需要cstring和string的转换。
分两步:
1把cstring转为char数组
2根据char数组,构造自己的string(记得释放内存)
而string转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的转换
- c++ 银行管理系统
- VC++ 获取mac地址
- (Win32): 已加载“C:\Windows\System32\ntdll.dll”。无法查找或打开 PDB 文件。
- C++中的成员变量是独立的,成员方法是共享的。
- CPP 6th——类(7)
- c++操作xml
- 11_排序二叉树删除-3
- c语言学习笔记之指针
- String C++完整实现。
- C语言总结
- c语言学习笔记之函数指针和指针函数
- c语言学习笔记之const关键字(理解)
- c语言学习笔记之内存分区
- Android:JNI函数编码风格(C风格与C++风格)
- c与c++相互调用机制分析与实现
- C++ Primer Plus第六版 第十七章 编程练习答案(完结篇...木有18章)
- C++ 模板详解(二)
- C51单片机学习(二):中断系统和定时器
- C++ Primer Pluse(第6版)中文版 第12章编程练习第5题