介绍AnsiString类之前,先要介绍一些背景知识。VCL大量利用Pascal长字串数据类型,几乎所有基于文本的VCL属性都采用Pascal长字串。例如,Text、Name和Caption属性都是Pascal长字串属性。VCL的许多构件方法和事件处理函数也采用Pascal长字串。
关于Pascal长字串数据类型要注意两点。第一,Pascal长字串是真正的语言数据类型,而不象C/C++中一样只是个字符数组。第二,C++内部没有Pascal长字串的对等类型。由于VCL大量使用Pascal长字串,而C++ Builder使用Pascal VCL,所以Borland生成一个C++类来近似Pascal长字串,这个类就是AnsiString类,可以代替Pascal长字串。
AnsiString类的类名不易理解,你要在SYSDEFS.H中采用如下语句:
typedef AnsiString String;
这样就可以在声明AnsiString类的实例时用名称String而不用正式类名AnsiString类:
String s = "This is a test";
由于String是AnsiString类的别名,所以不必在C++ Builder程序中再用AnsiString类名(当然,还可以这么用)。为了清晰起见,我在文本中使用AnsiString类名,而在代码例子中使用缩略形式String。
AnsiString类是功能很强的字串类。AnsiString类构造器可以从Char、Char*、int或double生成AnsiString类对象。这些构造器很容易将直接字串赋予AnsiString类并将整数或浮点数变成字串。下列例子显式或隐式使用AnsiString类构造器:
String FloatString = 127.123;
String AnotherFloatString(0.999);
String IntString = 49;
String CharString = 'A';
Labell>Caption = "This is a test";
double d = 3.14 * 20;
Edit1>Text = d;
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!