王朝网络
分享
 
 
 

C++ Builder 初学问与答(十六)

王朝c/c++·作者佚名  2006-01-09
宽屏版  字体: |||超大  

(版权要求:本文仅授权CSDN使用,另授权CCRUN转载,其他个人与网站不得转载、摘录,若有特别需求可与作者联系)

16.C/C++语言在CB中的一些特定用法

2)AnsiString是从Delphi中引进来的吗?

答:CB的核心组件VCL是用Object Pascal语言写出的,所以CB的VCL组件的属性有很多都是使用long string,例如:Text、 Name、Caption等属性都是使用Object Pascal的long string。基于此关系,CB只好建立了和Object Pascal的long string相应的类别,我们将它称为AnsiString。

3)AnsiString与String有什么区别?

答: C++ Builder在Sysdefs.h头文件中有这样的定义:

typedef AnsiString String;

从这一点在看他二者是完全一样的,只是书写起来后者更方便一些,前者是意图更明了一些。

4)能介绍一下AnsiString类的一些常见函数及其用法吗?

答:当然可以了,下面就常见函数做一下简单介绍:

成员函数

语法

功能

c_str

char *_fastcall c_str() const

返回字符串数据的指针

Delete

void _fastcall Delete(int index,int count)

由index处开始删除count个字符

Insert

void _fastcall Insert(const AnsiString& str,int index)

由index处开始插入字符str到原字符串中

IsEmpty

bool _fastcall IsEmpty() const

返回字符串是否为空,true表示空字符串

Length

int _fastcall Length() const

返回字符串长度

LowerCase

AnsiString _fastcall LowerCase() const

将字符串中的大写字母改写成小写

UpperCase

AnsiString _fastcall UpperCase() const

将字符串中的小写字母改写成大写

Pos

int _fastcall Pos(cont AnsiString& substr)const;

找出子字符串在原字符串中由第几个位置开始

SubString

AnsiString _fastcall SubString(int index,int count)const

返回由index处向后取count个字符

ToDouble

double _fastcall ToDouble() const

将字符转成双精度数值

ToInt

int _fastcall ToInt() const

将字符转成整形

IntToStr

AnsiString _fastcall IntToStr(int Value)

将整形转成字符串

Trim

AnstString _fastcall Trim() const

返回一个新的字符串,它会将原字符串前后空白或控制字符清除后再返回

WideChar

wchar_t fastcall WideChar(wchart* dest,int destsize)const

转换AnsiString到一个宽字符数组(COM中常用)

5)AnstString成员函数与传统字符串函数有何不同之处?

答:我们可以通过二者的一个对照表来查看他们的之间的不同之处:

AnsiString成员函数

功能

传统字符串函数

=

字符串拷贝

strcpy

+=

字符串合并

strcat

+

字符串连接

==,!+=,<,<=,>,>=

字符串比较

strcmp

c_str()

相互转换

无,但可以利用指针实现

Delete

删除子字符串

Insert

插入子字符串

Length

求字符串长度

strlen

LowerCase

字母转成小写

strlwr

Pos

找出子字符串

strstr

SetLength

设置字符串长度

ToInt

转成整形

ToDouble

转成双精度

sprintf

UpperCase

字母转成大写

strupr

6)如何实现传统字符串与AnsiString字符串的相互转换?

答:传统的C语言是使用字符来组成字符串的(字符串末尾必须有’\0’做为结束标志),其格式和AnsiString并不相同。由于在CB中我大量使用AnsiString格式,所以有时也难免要进行一些转换,我们可以通过下列三种方法来实现:

方法1:AnsiString字符串转换成字符串数组:

先利用AnsiString类别中的c_str()方法转换成传统字符串数组,再用strcpy拷贝,将它拷贝到字符数组中去:

char s1[20];

strcpy(s1,Edit1->Text.c_str());

方法2:AnsiString转换成传统字符串可以利用字符指针来实现:

可以通过字符指针来实现:

char *s;

s=Edit->Text.c_str();

方法3:利用字符指针实现传统字符串转换成AnsiString:

char *s=”试一试,看看能不能成功!”;

Edit->Text=s;

(未完待续)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有