最近编程,需要把CString类型的字符串转换成Char型的字符串,经过一番折腾、参考了一些网上资料,终于解决了,结果与大家分享。
下面的工作是在VC2008中完成的.
1.程序代码
//c++流库
#include <iostream>
//CString类的头文件
#include "atlstr.h"
//程序功能
// 将CString型变量转换成对应的短字符串char变量和宽字符串wchar_t变量
//输入
// CString cstSource - 待转换的CString型变量
// char* &pcOut - 转换后的短字符串
// wchar_t* &pwcOut - 转换后的宽字符串
//输出
// void
//注意
// 1. "&" 是引用,通过引用可以传递内存空间的地址
// 2. 不用预先给pcOut和pwcOut分配内存空间,本函数执行时会自动完成这一操作
// 3. pcOut和pwcOut使用后需要释放内存空间,方法为
// if(!pwcOut)
// {
// delete []pwcOut;
// }
// if(!pcOut)
// {
// delete []pcOut;
// }
void CStringToCharWchar(CString cstSource, char* &pcOut, wchar_t* &pwcOut)
{
//初始化指针
pcOut = NULL;
pwcOut = NULL;
//获取CString所包含宽字符串的字符个数,不含结束符
int ilength = cstSource.GetLength();
//转换为字符串后所占的宽字符(1个字符占2个字节)个数
int isizeOfString