CString操作函数详解Word文件下载.docx

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

CString操作函数详解Word文件下载.docx

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

CString操作函数详解Word文件下载.docx

LoadString示例

#defineIDS_FILENOTFOUND1

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代表要提取的开始索引位置

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

cde"

8.CString:

ReleaseBuffer

voidReleaseBuffer(intnNewLength=-1);

参数:

nNewLength

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

如果这个字

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

字符串的当前长度。

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

如果你知道缓

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

如果字符

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

在调用

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

ReleaseBuffer。

ReleaseBuffer示例

s="

abc"

;

LPTSTRp=s.GetBuffer(1024);

strcpy(p,"

);

//直接使用该缓冲区

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

//字符串长度=3

s.ReleaseBuffer();

//释放多余的内存,现在p无效。

//长度仍然是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(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(strBang==“Everybodyplaysgolg”);

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

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

11.CString:

ReverseFind

intReverseFind(TCHARch)const;

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

如果没有找

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

ch 

要搜索的字符。

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

此函数

类似于运行时函数strrchr。

ReverseFind示例

CStrings("

abcabc"

ASSERT(s.ReverseFind('

b'

)==4);

12.CString:

Right

CStringRight(intnCount)const;

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

ASSERT(s.Right

(2)==_T("

ef"

13.CString:

SetAt

voidSetAt(intnIndex,TCHARch);

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

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

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:

abbcadbabcadb"

str.TrimLeft("

结果"

cadbabcadb"

ac"

bcadbabcadb"

15.CString:

TrimRight

voidTrimRight();

TrimRight(TCHARchTarget);

TrimRight(LPCTSTRlpszTargets);

用法类似于上面。

16.CString:

Compare

intCompare(LPCTSTRlpsz)const;

字符串一样返回0,小于lpsz 

返回-1,大于lpsz 

返回1,区分大小字符

CStrings1("

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:

19.CString:

CollateNoCase

intCollateNocase(LPCTSTRlpsz)const;

20.CString:

CString 

//构造函数

CString();

CString(constCString&

stringSrc);

CString(TCHARch,intnRepeat=1);

CString(LPCTSTRlpch,intnLength);

CString(constunsignedchar*psz);

CString(LPCWSTRlpsz);

CString(LPCSTRlpsz);

CStrings1;

cat"

CStrings3=s2;

CStrings4(s2+"

"

+s3);

CStrings5('

x'

//s5="

x"

CStrings6('

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();

没有返回值 

清空操作;

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字符后的字符串.

ASSERT(s.Find('

)==2);

ASSERT(s.Find("

de"

)==3);

Cstringstr(“Thestarsarealigned”);

Ingn=str.Find('

e'

5);

ASSERT(n==12)

24.CString:

FindOneOf

intFindOneOf(LPCTSTRlpszCharSet)const;

索引以0开始

注意:

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

ASSERT(s.FindOneOf("

xd"

//'

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来确定它的长度。

GetBuffer例子

abcd"

#ifdef_DEBUG

afxDump<

<

CStrings"

<

s<

\n"

#endif

LPTSTRp=s.GetBuffer(10);

strcpy(p,"

Hello"

//直接访问CString对象。

s.ReleaseBuffer();

28.CString:

intGetLength()const;

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

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

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

对于多字节字符集(MBCS),GetLength按每一个8位字符计数;

即,在一个多字节字符中的开始和结尾字节被算作两个字节。

示例

GetLength。

GetLength示例

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,'

'

printf(“2:

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

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

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

printf(“3:

输出

1.HockeyisBest

2.HockeyisBest

3.HockeyisBest!

转自:

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

当前位置:首页 > 解决方案 > 学习计划

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

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