C++类型转换总结:字符串、整数、浮点数、CString、BSTR等
4星 · 超过85%的资源 需积分: 17 87 浏览量
更新于2024-07-28
2
收藏 708KB PDF 举报
C++类型转换详解
C++语言中,类型转换是非常重要的一部分,它可以将不同类型的数据转换成字符串或其他类型,以满足不同的需求。在本文中,我们将详细介绍C++类型转换的方法和技巧。
通用方法
使用sprintf函数可以将各种类型的数据转换成字符串。例如:
```c
char buffer[200];
char c = '1';
int i = 35;
long j = 1000;
float f = 1.7320534f;
sprintf(buffer, "%c", c);
sprintf(buffer, "%d", i);
sprintf(buffer, "%ld", j);
sprintf(buffer, "%f", f);
```
整数类型转换
对于整数类型,可以使用itoa函数将其转换成字符串。例如:
```c
char temp[10];
int i = 35;
itoa(i, temp, 10); // 十进制转换
itoa(i, temp, 2); // 二进制转换
```
对于长整型,可以使用ltoa函数将其转换成字符串。例如:
```c
char temp[10];
long j = 1000;
ltoa(j, temp, 10); // 十进制转换
```
浮点数类型转换
对于浮点数类型,可以使用_fcvt函数将其转换成字符串。例如:
```c
char* buffer;
double source = 3.1415926535;
int decimal, sign;
buffer = _fcvt(source, 7, &decimal, &sign);
```
CString变量转换
对于CString变量,可以使用LPSTR类型将其转换成字符串。例如:
```c
CString str = "2008北京奥运";
LPSTR buf = (LPSTR)(LPCTSTR)str;
```
BSTR变量转换
对于BSTR变量,可以使用ConvertBSTRToString函数将其转换成字符串。例如:
```c
BSTR bstrValue = ::SysAllocString(L"程序员");
char* buf = _com_util::ConvertBSTRToString(bstrValue);
SysFreeString(bstrValue);
```
CComBSTR变量转换
对于CComBSTR变量,可以使用ConvertBSTRToString函数将其转换成字符串。例如:
```c
CComBSTR bstrVar("test");
char* buf = _com_util::ConvertBSTRToString(bstrVar.m_str);
```
CString成员函数Format
CString提供了Format成员函数,可以将整数、浮点数等类型转换成字符串。例如:
```c
CString str;
int i = 35;
str.Format("%d", i); // 整数转换
float f = 3.1415926535;
str.Format("%f", f); // 浮点数转换
```
字符串转换
字符串可以使用strcpy函数将其转换成其他类型。例如:
```c
char temp[10];
strcpy(temp, "123");
```
可以使用atoi函数将字符串转换成整数。例如:
```c
char temp[10];
strcpy(temp, "123");
int i = atoi(temp);
```
可以使用atol函数将字符串转换成长整数。例如:
```c
char temp[10];
strcpy(temp, "123");
long l = atol(temp);
```
C++类型转换提供了多种方法来将不同类型的数据转换成字符串或其他类型,以满足不同的需求。
2011-02-05 上传
2009-02-20 上传
2009-02-16 上传
2023-04-24 上传
2010-02-24 上传
2010-03-27 上传
shou55
- 粉丝: 1
- 资源: 29
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析