MFCCString用法小结.doc_第1页
MFCCString用法小结.doc_第2页
MFCCString用法小结.doc_第3页
MFCCString用法小结.doc_第4页
MFCCString用法小结.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

MFCCString用法小结1. 初始化方法:(1) 直接复制,如Cstring=”mingrisoft”;(2) 通过构造函数初始化,如 CString str( ,100)/与分配100个字节,填充空格 char* p=”feiqiang”; Cstring(p);delete p.(3) 加载工程中的字符串资源,如CString str;str.LoadString(IDS_STR);(4) 使用CString类的成员函数Format初始化,如CString str; int i=0; str.Format(“value:%d”,i);2. 将CString转化为char*,如 CString str=”feqiang”; char *p; p=str.GetBuffer(); delete p; 将char*转化为CString,如: char* p=”feiqiang”; plen(p)=0; Cstring str(p); char* 和char数组的转化: char buf5 =a,b,c; char *p; p=new char5; p=buf; 将字符串转化为数字: CString str=”12”; int i=atoi(str); long j=atoll(str); float f=atof(str); 将数字转化为字符串: CString str; int i=12; str.Format(“%d”,i); long j=12; str,Format(“%ld”,j); 同理其他类型。3. 字符串的相关操作即方法的使用: (1) 提取字符串中的中文,如 CString strtext,temp,strres; GetLlgItem(IDC_TEXT)-GetWindowText(strtext);/通过ID获取编辑框中的文本 for(int =0;iSetWindowText(strtes);/设置文本框中的文本 (2) 英文字符串首字母大写,如 将以空格符分隔的英文单词的第一个字母大写(小写) str.GetAt(i);/提取字符串索引为i个字母 str.MakeLower();/转化为小写 tmp.MakeUpper();/转化为大写 (2) 按制定符号分割字符: int pos=str.Find(strchar);/查找字符,如果没找到,则返回0,找到则返回字符的位置,参数可以是字符也可以是字符串 while(pos0) str1=str.Left(pos);/取左,参数为字符串的个数 str=str.Right(str.GetLength-pos-1);/取右,参数同上 tmp.Format(“%srn”,str1);/字符串中rn代表回车化行符 strres+=tmp; pos=str.Find(strchar);(3) 删除指定的中文:m_text.GetWindowText(strtxt);m_text.GetSel(istart,iend);/得到文本框中选中的文本,并且得到文本的头索引和尾索引if(istart=iend) return;str1=strtxt.Left(istart);if(iend=strtxt.GetLength() str2=”;else str2=strtxt.Right(strtxt.GetLength()-iend);strres+=str1;strres+=str2; (4) 替换字符串: strtxt.Replace(strchar,strnew);/用新串替换旧串 (5) 根据CPoint查找位置: CPoint pt;/获取字符串时获取鼠标所在字符串的位置 int pos=m_text.CharFromPos(pt);/根据pt获取字符串中的位置,即其左侧字符的位置if(str.IsEmpty()/判断字符串是否为空 m_num.AddString(strres);/文本框追加字符串 将字符转化为大写:ch=ch-32; (6) 字符串忽略大小写的比较: CString str=”feiqiang”; int com=str.CompareNoCase(“mingri”);/如果相等返回0,否则返回-1; (7) 连接换行符:CString str=”feiqiangt”; (8) 字符反转:str.MakeReverse(); (9) 取出首位空格:str.TrimLeft(); str.TrimRight(); 取出字符串中的所有空格,str.Replace(“ ”,”); (10) 在ListBox中查找字符串int index=:SendMessage(m_stringlist.GetSafeHwnd(),LB_FINDSTRINGEXACT,-1,(LPARAM)(LPCTSTR)strtext);/通过SendMessage函数向列表控件发送LB_FINDSTRINGEXACT消息来查找指定字符串是否在列表空间中,如果存在则返回索引位置。 (11) 字符串数组: CString str5 array; CString str5=“feiqiang”,”mingri”,”mr”; for(int i=0;i5;i+) array.Add(stri);/添加元素for(int j=0;j要删除字符串的最大长度(GetCount() - nIndex)时会出错,当nCount过大,没有足够的字符删除时,此函数不执行。示例:CString str1,str2,str3;char a;str1 = nihao;str2 = nIhao;int x;/ int i=(str1 = str2);str1.Delete(2,3);如果nCount(3) GetCount() nIndex (5-2)就会执行错误22.CString:EmptyVoid Empty( );返回值:没有返回值 清空操作;示例:CString s( abc );s.Empty();ASSERT( s.GetLength( ) = 0 );23.CString:Findint Find( TCHAR ch ) const;int Find( LPCTSTR lpszSub ) const;int Find( TCHAR ch, int nStart ) const;int Find( LPCTSTR lpszSub, int nStart ) const;返回值: 不匹配的话返回 -1; 索引以0 开始; nStar 代表以索引值nStart 的字符开始搜索 ,即为包含以索引nStart字符后的字符串.示例:CString s( abcdef );ASSERT( s.Find( c ) = 2 );ASSERT( s.Find( de ) = 3 );Cstring str(“The stars are aligned”);Ing n = str.Find(e,5);ASSERT(n = 12)24.CString:FindOneOfint FindOneOf( LPCTSTR lpszCharSet ) const;返回值: 不匹配的话返回 -1; 索引以0 开始注意:返回此字符串中第一个在lpszCharSet中也包括字符并且从零开始的索引值示例:CString s( abcdef );ASSERT( s.FindOneOf( xd ) = 3 ); / d is first match.25.CString:Formatvoid Format( LPCTSTR lpszFormat, . );void Format( UINT nFormatID, . );参数:lpszFormat 一个格式控制字符串nFormatID 字符串标识符示例:CString str;Str.Format(“%d”,13);此时Str为1326.CString:GetAtTCHAR GetAt( int nIndex ) const;返回值:返回标号为nIndex的字符,你可以把字符串理解为一个数组,GetAt类似于.注意nIndex的范围,如果不合适会有调试错误。27.CString:GetBufferLPTSTR GetBuffer( int nMinBufLength );返回值:一个指向对象的(以空字符结尾的)字符缓冲区的LPTSTR 指针。参数:nMinBufLength字符缓冲区的以字符数表示的最小容量。这个值不包括一个结尾的空字符的空间。说明:此成员函数返回一个指向CString 对象的内部字符缓冲区的指针。返回的LPTSTR 不是const,因此可以允许直接修改CString 的内容。如果你使用由GetBuffer 返回的指针来改变字符串的内容,你必须在使用其它的CString 成员函数之前调用ReleaseBuffer 函数。在调用ReleaseBuffer 之后,由GetBuffer 返回的地址也许就无效了,因为其它的CString 操作可能会导致CString 缓冲区被重新分配。如果你没有改变此CString 的长度,则缓冲区不会被重新分配。当此CString 对象被销毁时,其缓冲区内存将被自动释放。注意:如果你自己知道字符串的长度,则你不应该添加结尾的空字符。但是,当你用ReleaseBuffer 来释放该缓冲区时,你必须指定最后的字符串长度。如果你添加了结尾的空字符,你应该给ReleaseBuffer 的长度参数传递-1 ,ReleaseBuffer 将对该缓冲区执行strlen 来确定它的长度。示例:/ CString:GetBuffer 例子CString s( abcd );#ifdef _DEBUGafxDump CString s s n;#endifLPTSTR p = s.GetBuffer( 10 );strcpy( p, Hello ); / 直接访问CString 对象。s.ReleaseBuffer( );#ifdef _DEBUGafxDump CString s s n;#endif28.CString:GetLengthint GetLength( ) const;返回值:返回字符串中的字节计数。说明:此成员函数用来获取这个CString 对象中的字节计数。这个计数不包括结尾的空字符。对于多字节字符集(MBCS),GetLength 按每一个8 位字符计数;即,在一个多字节字符中的开始和结尾字节被算作两个字节。示例下面的例子说明了如何使用CString:GetLength。/ CString:GetLength 示例CString s( abcdef );ASSERT( s.GetLength() = 6 );29.CString:Insertint Insert( int nIndex, TCHAR ch );int Insert( int nIndex, LPCTSTR pstr );返回值:返回修改后的长度,nIndex是字符(或字符串)插入后的索引号例子示例:CString str( “HockeyBest”);int n = str.Insert( 6, “is” );ASSERT( n = str.GetLength( ) );printf( “1: %sn”, (

温馨提示

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

最新文档

评论

0/150

提交评论