CString操作函数详解.docx

上传人:b****1 文档编号:1889999 上传时间:2023-05-02 格式:DOCX 页数:14 大小:19.16KB
下载 相关 举报
CString操作函数详解.docx_第1页
第1页 / 共14页
CString操作函数详解.docx_第2页
第2页 / 共14页
CString操作函数详解.docx_第3页
第3页 / 共14页
CString操作函数详解.docx_第4页
第4页 / 共14页
CString操作函数详解.docx_第5页
第5页 / 共14页
CString操作函数详解.docx_第6页
第6页 / 共14页
CString操作函数详解.docx_第7页
第7页 / 共14页
CString操作函数详解.docx_第8页
第8页 / 共14页
CString操作函数详解.docx_第9页
第9页 / 共14页
CString操作函数详解.docx_第10页
第10页 / 共14页
CString操作函数详解.docx_第11页
第11页 / 共14页
CString操作函数详解.docx_第12页
第12页 / 共14页
CString操作函数详解.docx_第13页
第13页 / 共14页
CString操作函数详解.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

CString操作函数详解.docx

《CString操作函数详解.docx》由会员分享,可在线阅读,更多相关《CString操作函数详解.docx(14页珍藏版)》请在冰点文库上搜索。

CString操作函数详解.docx

CString操作函数详解

VC:

CString用法整理(转载)

1.CString:

:

IsEmpty

BOOLIsEmpty()const;

返回值:

如果CString对象的长度为0,则返回非零值;否则返回0。

说明:

此成员函数用来测试一个CString对象是否是空的。

示例:

下面的例子说明了如何使用CString:

:

IsEmpty。

//CString:

:

IsEmpty示例

CStrings;

ASSERT(s.IsEmpty());

请参阅CString:

:

GetLength

 

2.CString:

:

Left

CStringLeft(intnCount)const; 

throw(CMemoryException);

返回值:

返回的字符串是前nCount个字符。

示例:

CStrings(_T("abcdef"));

ASSERT(s.Left

(2)==_T("ab"));

 

3.CString:

:

LoadString

BOOLLoadString(UINTnID);

throw(CMemoryException);

返回值:

如果加载资源成功则返回非零值;否则返回0。

nID 一个Windows字符串资源ID。

说明:

此成员函数用来读取一个由nID标识的Windows字符串资源,并放入一个已有CString对象中。

示例:

下面的例子说明了如何使用CString:

:

LoadString。

//CString:

:

LoadString示例

#defineIDS_FILENOTFOUND1

CStrings;

if(!

s.LoadString(IDS_FILENOTFOUND))

 

4.CString:

:

MakeLower

voidMakeLower(); //改变字符的小写

 

5.CString:

:

MakeReverse

voidMakeReverse(); //字符倒置

 

6.CString:

:

MakeUpper

voidMakeUpper(); //改变字符的大写

 

7.CString:

:

Mid

CStringMid(intnFirst)const; 

CStringMid(intnFirst,intnCount)const; 

nCount代表要提取的字符数,nFirst代表要提取的开始索引位置

示例:

CStrings(_T("abcdef"));

ASSERT(s.Mid(2,3)==_T("cde"));

 

8.CString:

:

ReleaseBuffer

voidReleaseBuffer(intnNewLength=-1);

参数:

nNewLength

此字符串的以字符数表示的新长度,不计算结尾的空字符。

如果这个字

符串是以空字符结尾的,则参数的缺省值-1将把CString的大小设置为

字符串的当前长度。

说明:

使用ReleaseBuffer来结束对由GetBuffer分配的缓冲区的使用。

如果你知道缓

冲区中的字符串是以空字符结尾的,则可以省略nNewLength参数。

如果字符

串不是以空字符结尾的,则可以使用nNewLength指定字符串的长度。

在调用

ReleaseBuffer或其它CString操作之后,由GetBuffer返回的地址是无效的。

示例:

下面的例子说明了如何使用CString:

:

ReleaseBuffer。

//CString:

:

ReleaseBuffer示例

CStrings;

s="abc";

LPTSTRp=s.GetBuffer(1024);

strcpy(p,"abc");//直接使用该缓冲区

ASSERT(s.GetLength()==3);//字符串长度=3

s.ReleaseBuffer();//释放多余的内存,现在p无效。

ASSERT(s.GetLength()==3);//长度仍然是3

 

9.CString:

:

Remove

intCString:

:

Remove(TCHARch);

返回值:

返回从字符串中移走的字符数。

如果字符串没有改变则返回零。

参数:

ch 要从一个字符串中移走的字符。

说明:

此成员函数用来将ch实例从字符串中移走。

与这个字符的比较是区分大小写

的。

示例:

//从一个句子中移走小写字母'c':

CStringstr(“Thisisatest.”);

intn=str.Remove('t');

ASSERT(n==2);

ASSERT(str==“Thisisaes.”);

 10.CString:

:

Replace

intReplace(TCHARchOld,TCHARchNew);

intReplace(LPCTSTRlpszOld,LPCTSTRlpszNew);

返回值:

返回被替换的字符数。

如果这个字符串没有改变则返回零。

参数:

chOld    要被chNew替换的字符。

chNew   要用来替换chOld的字符。

lpszOld  一个指向字符串的指针,该字符串包含了要被lpszNew替换的字符。

LpszNew 一个指向字符串的指针,该字符串包含了要用来替换lpszOld的字符。

说明:

此成员函数用一个字符替换另一个字符。

函数的第一个原形在字符串中用chNew

现场替换chOld。

函数的第二个原形用lpszNew指定的字符串替换lpszOld指定

的子串。

在替换之后,该字符串有可能增长或缩短;那是因为lpszNew和lpszOld的长度

不需要是相等的。

两种版本形式都进行区分大小写的匹配。

示例:

//第一个例子,old和new具有相同的长度。

CStringstrZap(“C--”);

intn=strZap.Replace('-','+');

ASSERT(n==2);

ASSERT(strZap==“C++”);

//第二个例子,old和new具有不同的长度。

CStringstrBang(“Everybodylikesicehockey”);

n=strBang.Replace(“hockey”,“golf”);

ASSERT(n==1);

n=strBang.Replace(“likes”,“plays”);

ASSERT(n==1);

n=strBang.Replace(“ice”,NULL);

ASSERT(n==1);

ASSERT(strBang==“Everybodyplaysgolg”);

//注意,现在在你的句子中有了一个额外的空格。

//要移走这个额外的空格,可以将它包括在要被替换的字符串中,例如,“ice”。

 

11.CString:

:

ReverseFind

intReverseFind(TCHARch)const;

返回值:

返回此CString对象中与要求的字符匹配的最后一个字符的索引;如果没有找

到需要的字符则返回-1。

参数:

ch 要搜索的字符。

说明:

此成员函数在此CString对象中搜索与一个子串匹配的最后一个字符。

此函数

类似于运行时函数strrchr。

示例:

//CString:

:

ReverseFind示例

CStrings("abcabc");

ASSERT(s.ReverseFind('b')==4);

 

12.CString:

:

Right

CStringRight(intnCount)const; 

throw(CMemoryException);

返回值:

返回的字符串是最后nCount个字符。

CStrings(_T("abcdef"));

ASSERT(s.Right

(2)==_T("ef"));

 

13.CString:

:

SetAt

voidSetAt(intnIndex,TCHARch);

 说明:

可以把字符串理解为一个数组,SetAt类似于[].注意nIndex的范围,如果不合适会有调试错误。

Ch更替字符,把nIndex位置上的字符变成ch

 示例:

CStrings("abc");

s.MakeReverse();

ASSERT(s=="cba");

 

14.CString:

:

TrimLeft

voidTrimLeft();

voidCString:

:

TrimLeft(TCHARchTarget);

说明:

如果没有参数,从左删除字符(\n\t空格等),至到遇到一个非此类字符.当然你也可以指定删除那些字符.如果指定的参数是字符串,那么遇上其中的一个字符就删除.

\n 换行符

\t TAB字符

示例1:

CStringstr="\n\ta";

str.TrimLeft();

str为“a”;

 示例2:

CStringstr="abbcadbabcadb";

str.TrimLeft("ab");

结果"cadbabcadb"

str.TrimLeft("ac");

结果"bcadbabcadb"

 

15.CString:

:

TrimRight

voidTrimRight();

voidCString:

:

TrimRight(TCHARchTarget);

voidCString:

:

TrimRight(LPCTSTRlpszTargets);

说明:

用法类似于上面。

 

16.CString:

:

Compare

intCompare(LPCTSTRlpsz)const;

返回值:

字符串一样返回0,小于lpsz 返回-1,大于lpsz 返回1,区分大小字符

示例:

CStrings1("abc");

CStrings2("abd");

ASSERT(s1.Compare(s2)==-1);

ASSERT(s1.Compare("abe")==-1 

17.CString:

:

CompareNoCase

intCompareNoCase(LPCTSTRlpsz)const;

返回值:

字符串一样返回0,小于lpsz 返回-1,大于lpsz 返回1,不区分大小字符

 

18.CString:

:

Collate

intCollate(LPCTSTRlpsz)const;

同CString:

:

Compare

 

19.CString:

:

CollateNoCase

intCollateNocase(LPCTSTRlpsz)const;

同CString:

:

CompareNoCase

 

20.CString:

:

CString     //构造函数

CString();

CString(constCString&stringSrc); 

CString(TCHARch,intnRepeat=1); 

CString(LPCTSTRlpch,intnLength);

CString(constunsignedchar*psz); 

CString(LPCWSTRlpsz);

CString(LPCSTRlpsz);

示例:

CStrings1;                     

CStrings2("cat");              

CStrings3=s2;                 

CStrings4(s2+""+s3);        

CStrings5('x');                     //s5="x"

CStrings6('x',6);                  //s6="xxxxxx"

CStrings7((LPCSTR)ID_FILE_NEW);       //s7="Createanewdocument"

CStringcity="Philadelphia";

 

21.CString:

:

Delete

intDelete(intnIndex,intnCount=1); 

返回值:

是被删除前的字符串的长度

nIndex是第一个被删除的字符,nCount是一次删除几个字符。

根据我实验得出的结果:

当nCount>要删除字符串的最大长度(GetCount()-nIndex)时会出错,当nCount过大,没有足够的字符删除时,此函数不执行。

示例:

CStringstr1,str2,str3;

chara;

str1="nihao";

str2="nIhao";

intx;

//inti=(str1==str2);      

str1.Delete(2,3);

如果nCount(3)>GetCount()–nIndex(5-2)就会执行错误

 

22.CString:

:

Empty

VoidEmpty();

返回值:

没有返回值 清空操作;

示例:

CStrings("abc");

s.Empty();

ASSERT(s.GetLength()==0);

 

23.CString:

:

Find

intFind(TCHARch)const;

intFind(LPCTSTRlpszSub)const;

intFind(TCHARch,intnStart)const;

intFind(LPCTSTRlpszSub,intnStart)const;

返回值:

 不匹配的话返回-1; 索引以0开始;nStar代表以索引值nStart的字符开始搜索,

即为包含以索引nStart字符后的字符串.

示例:

CStrings("abcdef");

ASSERT(s.Find('c')==2);

ASSERT(s.Find("de")==3);

Cstringstr(“Thestarsarealigned”);

Ingn=str.Find('e',5);

ASSERT(n==12)

 

24.CString:

:

FindOneOf

intFindOneOf(LPCTSTRlpszCharSet)const;

返回值:

 不匹配的话返回-1; 索引以0开始

注意:

:

返回此字符串中第一个在lpszCharSet中也包括字符并且从零开始的索引值

示例:

CStrings("abcdef");

ASSERT(s.FindOneOf("xd")==3);//'d'isfirstmatch.

 

25.CString:

:

Format

voidFormat(LPCTSTRlpszFormat,...);

voidFormat(UINTnFormatID,...);

参数:

lpszFormat 一个格式控制字符串

nFormatID 字符串标识符

示例:

CStringstr;

Str.Format(“%d”,13); 

此时Str为13

 

26.CString:

:

GetAt

TCHARGetAt(intnIndex)const;

返回值:

返回标号为nIndex的字符,你可以把字符串理解为一个数组,GetAt类似于[].注意nIndex的范围,如果不合适会有调试错误。

 

27.CString:

:

GetBuffer

LPTSTRGetBuffer(intnMinBufLength);

返回值:

一个指向对象的(以空字符结尾的)字符缓冲区的LPTSTR指针。

参数:

nMinBufLength

字符缓冲区的以字符数表示的最小容量。

这个值不包括一个结尾的空字符的空间。

说明:

此成员函数返回一个指向CString对象的内部字符缓冲区的指针。

返回的LPTSTR不是const,因此可以允许直接修改CString的内容。

如果你使用由GetBuffer返回的指针来改变字符串的内容,你必须在使用其它的CString成员函数之前调用ReleaseBuffer函数。

在调用ReleaseBuffer之后,由GetBuffer返回的地址也许就无效了,因为其它的CString操作可能会导致CString缓冲区被重新分配。

如果你没有改变此CString的长度,则缓冲区不会被重新分配。

当此CString对象被销毁时,其缓冲区内存将被自动释放。

注意:

如果你自己知道字符串的长度,则你不应该添加结尾的空字符。

但是,当你用ReleaseBuffer来释放该缓冲区时,你必须指定最后的字符串长度。

如果你添加了结尾的空字符,你应该给ReleaseBuffer的长度参数传递-1,ReleaseBuffer将对该缓冲区执行strlen来确定它的长度。

示例:

//CString:

:

GetBuffer例子

CStrings("abcd");

#ifdef_DEBUG

afxDump<<"CStrings"<

#endif

LPTSTRp=s.GetBuffer(10);

strcpy(p,"Hello");//直接访问CString对象。

s.ReleaseBuffer();

#ifdef_DEBUG

afxDump<<"CStrings"<

#endif

 

28.CString:

:

GetLength

intGetLength()const;

返回值:

返回字符串中的字节计数。

说明:

此成员函数用来获取这个CString对象中的字节计数。

这个计数不包括结尾的空字符。

对于多字节字符集(MBCS),GetLength按每一个8位字符计数;即,在一个多字节字符中的开始和结尾字节被算作两个字节。

示例

下面的例子说明了如何使用CString:

:

GetLength。

//CString:

:

GetLength示例

CStrings("abcdef");

ASSERT(s.GetLength()==6);

 

29.CString:

:

Insert

intInsert(intnIndex,TCHARch); 

intInsert(intnIndex,LPCTSTRpstr);

返回值:

返回修改后的长度,nIndex是字符(或字符串)插入后的索引号例子

示例:

CStringstr(“HockeyBest”);

 intn=str.Insert(6,“is”);

 ASSERT(n==str.GetLength()); 

printf(“1:

%s\n”,(LPCTSTR)str);

 n=str.Insert(6,''); 

ASSERT(n==str.GetLength()); 

printf(“2:

%s\n”,(LPCTSTR)STR);

 n=str.Insert(555,‘1’);

ASSERT(n==str.GetLength());

 printf(“3:

%s\n”,(LPCTSTR)str);

输出

1.HockeyisBest

2.HockeyisBest

3.HockeyisBest!

 转自:

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2