admin 管理员组文章数量: 887021
2024年2月19日发(作者:登录界面怎设计的好看)
浅谈AnsiString
在Borland C++ Builder 6(以下简称BCB)中,最常用的长字符串类型即是AnsiString型。VCL组件中任何需要用到字符串变量的地方,都是使用AnsiString型字符串。BCB整个工具最大的优势在于其丰富的VCL组件,使可视化开发便捷可行,因此足见AnsiString类型对于熟练掌握、高效运用BCB的重要性。
相比传统的C/C++的char型数组实现字符串的方法,AnsiString类型提供了丰富的对象方法,使访问、操作和使用字符串更加方便高效,即使相比标准库中的std::string仍然毫不逊色。可以说,AnsiString是BCB及Delphi中一颗璀璨的明珠。AnsiString仍然采用了C/C++中字符串的结构,以’0’(NULL)结尾,值得一提的是其在实际字符串前面增加了一些字节的head。AnsiString索引值基于1,而非0。
AnsiString提供的一系列操作符如下:
1. 赋值:=
2. 连接:+、+=
3. 比较:==、>、<、>=、<=、!=
4. 访问:[](下标访问)
AnsiString常用方法如下:
1. AnsiCompare
声明:int __fastcall AnsiCompare(const AnsiString &rhs) const;
说明:该方法按照字典顺序、区分大小写的方法比较AnsiString和rhs,若S1 > S2返回 大于0,相等返回0,S1 < S2则返回小于0。
2. AnsiCompareIC
声明及说明同上,唯一的区别在于不区分大小写。
3. AnsiLastChar
声明:char * __fastcall AnsiLatChar() const;
说明:该方法返回AnsiString中最后字符的指针,可通过它来访问最后一个字符。支持 多字节字符。
4. AnsiPos
声明:int __fastcall AnsiPos(const AnsiString &subStr) const;
说明:该方法返回AnsiString中子串subString的索引,索引基于1。若无该子串,则返 回0。支持多字节字符串。
5. c_str
声明:char * __fastcall c_str() const;
说明:该方法返回一个包含与AnsiString相同字符的零终止的字符数组的指针(在需要C 风格字符串的地方常用),若未分配AnsiString则返回空字符串。该方法主要用于 读取AnsiString的值(const成员函数),若要修改使用[]操作或Insert/Delete等方法。
6. data
声明:const void * __fastcall data() const;
说明:同上,区别在于值为空时返回空指针。
7. Delete
声明:AnsiString & __fastcall Delete(int index, int count);
说明:该方法从AnsiString中删除从index位置开始的count个字符并返回该字符串。
若index无效(大于AnsiString长度/小于1)或count≤0则不删除字符,若count指
定的字符多于从index开始的字符,则删除其余的字符。
8. FloatToStrF
该方法用来控制浮点值的字符串表示法,如几位小数、科学计数法等,具体请参见Help。
9. FormatFloat
声明:static AnsiString __fastcall FormatFloat(const AnsiString &format, const long double
&value);
说明:该方法用format给出的格式化字符串格式化value给出的值,具体请参见Help。
10. Insert
声明:AnsiString & __fastcall Insert(const AnsiString &str, int index);
说明:该方法在index位置上插入str字符串并返回修改后的结果。如index < 1则映射
为1,如超过字符串长度,则映射为Length();如str为空则不执行操作,如不能
分配足够内存,则抛出EOutOfMemory异常。
11. IntToHex
声明:static AnsiString __fastcall IntToHex(int value, int digits);
说明:该方法将数字转化为16进制表示的字符串,value表示要转换的数字,digits表
示16进制数的最小数。注意此方法为static,不依赖于AnsiString对象实现,即
可以直接使用此方法如:ShowMessage(IntToHex(19, 1))返回13。
12. IsEmpty
声明:bool __fastcall IsEmpty() const;
说明:若AnsiString为空则返回true,否则返回false。亦可用其与EmptyStr比较,或
测其长度Length() == 0;
13. Length
声明:int __fastcall Length() const;
说明:返回AnsiString中字节数。
14. LowerCase
声明:AnsiString __fastcall LowerCase() const;
说明:返回转换成小写后的AnsiString。
15. operator !=
声明:bool __fastcall operator !=(const AnsiString& rhs) const;
说明:比较两字符串是否相等,不相等返回true,否则返回false。
16. operator []
声明:char& __fastcall operator [](const int index);
说明:返回字符串中索引index上的字符,索引基于1,可通过此修改该字符。若index 无效,则抛出OutOfRange异常。
17. operator +
声明:friend AnsiString __fastcall operator +(const char *lhs, const AnsiString& rhs);
说明:该方法返回连接lhs和rhs后的AnsiStirng。
18. operator +=
声明:AnsiStirng& __fastcall operator +=(const AnsiString& rhs);
说明:连接AnsiString与rhs并返回新字符串。
19. operator <
声明:bool __fastcall operator <(const AnsiString& rhs) const;
说明:若AnsiString小于rhs,返回true,否则返回false,依照字典顺序。
20. operator <=
声明:bool __fastcall operator <=(const AnsiString& rhs) const;
说明:同上
21. operator =
声明:AnsiString __fastcall operator =(const AnsiString& rhs);
说明:赋值操作,将字符串rhs分配到AnsiString中。
22. operator ==
声明:bool __fastcall operator ==(const AnsiString& rhs) const;
说明:比较两字符串是否相等,相等返回true,否则返回false。
23. operator >
声明:bool __fastcall operator >(const AnsiString& rhs) const;
说明:同operator <说明。
24. operator >=
声明:bool __fastcall operator >=(const AnsiString& rhs) const;
说明:同上说明。
25. Pos
声明及说明同AnsiPos,不支持多字节字符。
26. UpperCase
声明:AnsiString __fastcall UpperCase() const;
说明:返回转换成大写后的AnsiString。
在使用AnsiString类的各种方法(成员函数)时,应注意函数是否为const、static等,这些关键字决定了是否可通过该函数修改AnsiString值、是否依赖于具体AnsiString对象调用等等,通过对AnsiString成员函数的调用,可加深对类的成员函数的理解。
版权声明:本文标题:浅谈AnsiString 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1708337265h520346.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论