当前位置:文档之家› c各种数据类型之间相互转化

c各种数据类型之间相互转化

⑴. char *转换到BSTR
BSTR b = _com_util::ConvertStringToBSTR("数据");
SysFreeString(bstrValue);
(2).BSTR转换到char*
char *p=_com_util::ConvertBSTRToString(b);
delete p;
12.typedef和typename要害字
这两个要害字在运用的时辰时例会令人迷惑,其实很简单,typedef是类型定义, 而typename是类型解释2009年04月20日
类型转换是将一种类型的值映射为另一种类型的值进行数据类型的转换
是在实际代码编写中经常遇到的问题,出格是字符串和其它类型的转换
1.将字符串转换为整儿
(1).转换函数
// 双精度函数
double atof(
const char *string
);
double _wtof(
const wchar_t *string
);
自适应
TCHAR:_tstof 、_ttof
VS2005:_atof_l 、_wtof_l 、_atodbl 、_atodbl_l
// 整型函数
int atoi(
const char *string
);
_int64 _atoi64(
const char *string
);
int _wtoi(
const wchar_t *string
);
_int64 _ wtoi64(
const char *string
);
自适应
TCHAR:_tstoi 、_ttoi 、_tstoi64 、_ttoi64
VS2005:_atoi_l 、_wtoi_l 、_atoi64_l 、_wtoi64_l
//长整形函数
long atol(
const char * string
);
long _wtol(
const wchar_t *string
);
自适应
TCHAR:_tstoi 、_ttoi
VS2005:_atoi_l 、_wtoi_l
可参考:.cn/s/blog_4135af570100b0d9.ht ml (2).代码参考
Cstring ting ="1234";
int num = atoi(ting);
num的值为1234.
CString ting = "1234 ";
double num = atof(ting);
最终结果:num值为1234.0000000000000 2.int 转换为字符串
cahr *_itoa(
int value,
char *string,
int radix
);
char *_i64toa(
_int64 value,
char *string,
int radix
);
char * _ui64toa(
unsigned _int64 value,
char *string,
int radix
);
wchar_t * _itow(
int value,
wchar_t *string,
int radix
);
wchar_t * _i64tow(
_int64 value,
wchar_t *string,
int radix
);
wchar_t * _ui64tow(
unsigned _int64 value,
wchar_t *string,
int radix
);
参数的意义:value 是指要转换的整儿,sring 是用来存放转换后结果的便当,
radix是用来说明转换成几进制的数据,默认值是十进制数的
转换的进制范围是二进制到三十六进制示例代码:
int iii = 9;
char ii[100];
itoa(iii, ii, 10);
ii 中的结果就是字符串"9"
int iii = 12;
char ii[100];
itoa(iii, ii, 2);
ii 中的结果是字符串"1100"
3.long 转换为字符串
char *_ltoa( long value,char *string, int radix );
wchar_t *_ltow( long value, wchar_t *string, int radix );
其中,参数value 为被转换的值,参数string为字符串缓冲区,radix为进制
代码参考:
ling l = 100; char temp[10];
memset(temp,0,10);
ltoa(l,temp,10);
4.double 转换为字符串
char *_fcvt( double value, int count, int *dec, int *sign );
其中参数value 为双精度数,参数count为转换的小数点后面的位数,dec表示小数点的位置,
sign 表示符号代码参数如下
int decimal, sign;
char *buffer;
dobule source = 3.35;
buffer = _fcbt( source, 7, &decimal, &sign );
输出结果:sourec:3.35; buffer:'''' decimal: 1 sign:0
5.日期类型转换为字符串
将一日期格式转换为字符串,利用了格式化函数,参考代码如下:
CTime ti = Ctime::GetCurrentTime();
Cstring strTemp("");
strTemp = ti.Format("%Y%m%d %H%H%S")
6.字符串转换为短整型
int atoi( const char *string );
其中,参数const char *string为要转换的字符串,返回值为转换的结果
7.字符串转换为长整型
long atol(const char * string)
8.字符串转换为双精度类型
double atof(const char* string)
代码参考:
#include<stdlib.h>
#include<stdio.h>。

相关主题