您的位置:首页 > 编程语言 > C语言/C++

c/vc/c++不同数据类型之间的转换

2017-03-16 17:57 423 查看
c/vc/c++不同数据类型之间的转换

一.常见的转换 int,char,string,CString,float,long,double类型之间的转换

//**********************************************//

CString.format(”%s”, string.c_str());//string 转 CString

CString.format(”%s”, char*);//char* 转 CString

string s(char *);//char* 转 string  只能初始化,在不是初始化的地方最好还是用assign().

char *p = string.c_str();//string 转 char *

string s(CString.GetBuffer());//string 转 CString GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.

CString strtest;char * charpoint;charpoint=”give string a value”;strtest=charpoint;//char*转CString,c语言的字符串转化为mfc的字符串CString 采用的是直接赋值的方式

charpoint=strtest.GetBuffer(strtest.GetLength()); //CString 转char*  也可以使用内存拷贝的形式

标准C里没有string,char *==char []==string

可以用CString.Format(”%s”,char *)这个方法来将char *转成CString。要把CString转成char *,用操作符(LPCSTR)CString就可以了。

将字符转换为整数,可以使用atoi、_atoi64或atol。而将数字转换为CString变量,可以使用CString的Format函数。

有三个函数可以将字符串的内容转换为字符数组和c字符串string

data()返回没有”\0“的字符串数组   //data()函数返回指向自己的第一个字符的指针

c_str()返回有”\0“的字符串数组    //c_str()函数返回一个指向正规C字符串的指针, 内容与本字符串相同

copy()

CString转换 char[100]

char a[100];

CString str(”aaaaaa”);

strncpy(a,(LPCTSTR)str,sizeof(a));

有int,float,double,long,string,CString

本地2010 msdn上面的数据类型转换常用函数地址:
http://127.0.0.1:47873/help/1-2980/ms.help?method=page&id=B15B5268-7467-49F1-BF95-5299B598F94C&product=VS&productVersion=100&topicVersion=100&locale=ZH-CN&topicLocale=ZH-CN
和C标准库中的常用数据类型转换函数。

C语言实行隐式类型数据转换C++实行显示类型转换

二.复杂的数据类型之间的转换

1.不同指针数据类型之间的转换

2.C++不同类对象和父子类对象及其指针之间的相互转换。

关键字static_cast 用来在两个不同类型之间进行强制转换,并且没有运行时间检查.

关键字dynamic_cast强制将一个类型转化为另外一种类型,并且在执行运行时时检查它保证它的合法性。如果你想在两个互相矛盾的类型之间转化时,cast的返回值将为NULL.

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: