CString,int,string,char之间的转换.doc_第1页
CString,int,string,char之间的转换.doc_第2页
CString,int,string,char之间的转换.doc_第3页
CString,int,string,char之间的转换.doc_第4页
CString,int,string,char之间的转换.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文档将详细介绍如下内容:CString,int,string,char*之间的转换string 转 CStringCString.format(”%s”, string.c_str();char 转 CStringCString.format(”%s”, char*);char 转 stringstring s(char *);string 转 char *char *p = string.c_str();CString 转 stringstring s(CString.GetBuffer();1,string - CStringCString.format(”%s”, string.c_str();用c_str()确实比data()要好.2,char - stringstring s(char *);你的只能初始化,在不是初始化的地方最好还是用assign().3,CString - stringstring s(CString.GetBuffer();GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.C+标准函数库中说的有三个函数可以将字符串的内容转换为字符数组和Cstring1.data(),返回没有”0“的字符串数组2,c_str(),返回有”0“的字符串数组3,copy()CString与int、char*、char100之间的转换- -CString与int、char*、char100之间的转换- - CString互转int将字符转换为整数,可以使用atoi、_atoi64或atol。而将数字转换为CString变量,可以使用CString的Format函数。如CString s;int i = 64;s.Format(”%d”, i)Format函数的功能很强,值得你研究一下。void CStrDlg:OnButton1()/ TODO: Add your control notification handler code hereCStringss=”1212.12;int temp=atoi(ss);CString aa;aa.Format(”%d”,temp);AfxMessageBox(”var is ” + aa);sart.Format(”%s”,buf);CString互转char*/char * TO cstringCString strtest;char * charpoint;charpoint=”give string a value”;strtest=charpoint;/cstring TO char *charpoint=strtest.GetBuffer(strtest.GetLength();标准C里没有string,char *=char =string可以用CString.Format(”%s”,char *)这个方法来将char *转成CString。要把CString转成char *,用操作符(LPCSTR)CString就可以了。CString转换 char100char a100;CString str(”aaaaaa”);strncpy(a,(LPCTSTR)str,sizeof(a);Trackback: /TrackBack.aspx?PostId=1570001 (一) 概述string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C+标准之中;CString(typedef CStringT CString)为Visual C+中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,主要数据类型有char(应用于ANSI),wchar_t(unicode),TCHAR(ANSI与unicode均可);char*为C编程中最常用的字符串指针,一般以0为结束标志;(二) 构造string是方便的,可以从几乎所有的字符串构造而来,包括CString和char*;CString次之,可以从基本的一些字符串变量构造而来,包括char*等;char*没有构造函数,仅可以赋值;举例:char* psz = “joise”;CString cstr( psz );string str( cstr );(三) 运算符重载a) perator=string是最方便的,几乎可以直接用所有的字符串赋值,包括CString和char*;CString次之,可以直接用些基本的字符串赋值,包括char*等;char*只能由指针赋值,并且是极危险的操作,建议使用strcpy或者memcpy,而且char*在声明的时候如未赋初值建议先设为NULL,以避免野指针,令你抓狂;举例:char *psz = NULL;psz = new char10; /当然,以上的直接写成char *psz = new char10;也是一样memset( psz, 0, 10 );strcpy( psz, “joise” );CString cstr;cstr = psz;string str;str = psz;str = cstr;delete psz;b) operator+string与CString差不多,可以直接与char*进行加法,但不可以相互使用+运算符,即string str = str + cstr是非法的,须转换成char*;char*没有+运算,只能使用strcat把两个指针连在一起;举例:char* psz = “joise”;CString cstr = psz;cstr = cstr + psz;string str = psz;str = str + str + psz;strcat( psz, psz );strcat( psz, cstr );/合法strcat( psz, str );/非法,由此可见,CString可自动转换为const char*,而string不行c) operator +=string是最强大的,几乎可以与所有的字符串变量+=,包括CString和char*;CString次之,可以与基本的一些字符串变量进行+=而来,包括char*等;char*没有+=运算符,只能使用strcat把两个指针连在一起;d) operatorCString最好,当越界时会抛出断言异常;string与char*下标越界结果未定义;举例:char* psz = “joise”;CString cstr = psz;cout cstr8;string str = psz;cout str8;cout 、operator= 、perator=CString与string之间不可以进行比较,但均可以与char*进行比较,并且比较的是值,而不是地址;cout ( psz = cstr );cout ( psz = str );cout ( str = psz );cout ( cstr = psz );/以上代码返回均为1(四) 常用算法a) 查找作用 char* string CString查找指定值 strchrstrstrstrrstrstrspn find Find第一个匹配的值 fild_first_of FindOneOf 从后面开始查找 ReserveFind 指定匹配方式 find_if注:find_if中是把范围内的值挨个代入匹配函数直至返回trueb) 比较作用 char* string CString 查找指定值(区分大小写) strcmpstrncmpstrcoll_strncoll operatoroperator=operator=operator!= Coll

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论