CString与char、string、int转换教程
![](https://csdnimg.cn/release/wenkucmsfe/public/img/star.98a08eaa.png)
本文主要介绍了在Microsoft Foundation Class (MFC) 库中如何进行字符串类型之间的转换,包括`CString`、`char *`和`std::string`之间的转换,以及`CString`与`int`之间的转换方法。 在MFC中,`CString`是一个方便的字符串类,它提供了许多操作字符串的功能。以下是一些转换方法: 1. `CString` 转 `char *`: ```cpp CString cstr; char* p = (LPSTR)(LPCTSTR)cstr; ``` 这里通过类型转换将`CString`对象转换为`char *`指针,但需要注意,这种转换是临时的,不适用于修改原始`CString`内容的情况。 2. `string` 转 `CString`: ```cpp std::string str; CString cstr; cstr.Format("%s", str.c_str()); ``` 使用`Format`函数,传入`std::string`的`c_str()`返回的C风格字符串来创建`CString`。 3. `char` 转 `CString`: ```cpp char ch; CString cstr; cstr.Format("%s", &ch); ``` 类似地,对于单个`char`,也可以通过`Format`函数将其转换为`CString`。 4. `char *` 转 `string`: ```cpp char* p; std::string str(p); ``` 在初始化`std::string`时,可以直接传入`char *`指针。 5. `string` 转 `char *`: ```cpp std::string str; char* p = str.c_str(); ``` `std::string`的`c_str()`方法返回一个带有终止符`'\0'`的C风格字符串。 6. `CString` 转 `string`: ```cpp CString cstr; std::string str(cstr.GetBuffer()); // 记得释放缓冲区 cstr.ReleaseBuffer(); ``` 使用`GetBuffer()`获取内部缓冲区,然后构造`std::string`,但记得在使用后调用`ReleaseBuffer()`释放。 7. `CString` 与 `int` 之间的转换: - `int` 转 `CString`: ```cpp int i = 64; CString s; s.Format("%d", i); ``` 使用`Format`函数将整数转换为`CString`。 - `CString` 转 `int`: ```cpp CString s; int i = _ttoi(s); ``` 可以使用`_ttoi`函数将`CString`转换为`int`。 这些转换在处理不同类型的字符串时非常有用,特别是在MFC应用中。了解这些基本的转换方法可以帮助开发者更灵活地在不同类型的字符串间操作数据。然而,需要注意的是,不正确的转换可能导致内存泄漏或数据损坏,因此在实际使用中务必谨慎。
![](https://csdnimg.cn/release/download_crawler_static/3756827/bg4.jpg)
剩余16页未读,继续阅读
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 0
- 资源: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 构建Cadence PSpice仿真模型库教程
- VMware 10.0安装指南:步骤详解与网络、文件共享解决方案
- 中国互联网20周年必读:影响行业的100本经典书籍
- SQL Server 2000 Analysis Services的经典MDX查询示例
- VC6.0 MFC操作Excel教程:亲测Win7下的应用与保存技巧
- 使用Python NetworkX处理网络图
- 科技驱动:计算机控制技术的革新与应用
- MF-1型机器人硬件与robobasic编程详解
- ADC性能指标解析:超越位数、SNR和谐波
- 通用示波器改造为逻辑分析仪:0-1字符显示与电路设计
- C++实现TCP控制台客户端
- SOA架构下ESB在卷烟厂的信息整合与决策支持
- 三维人脸识别:技术进展与应用解析
- 单张人脸图像的眼镜边框自动去除方法
- C语言绘制图形:余弦曲线与正弦函数示例
- Matlab 文件操作入门:fopen、fclose、fprintf、fscanf 等函数使用详解
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)