Ansistring的类型转换与使用

来源:互联网 发布:苹果笔记本数据恢复 编辑:程序博客网 时间:2024/06/06 20:24
//Ansistring 转 charvoid __fastcall TForm1::Button1Click(TObject *Sender){    AnsiString Test = "哈哈";    char *chr = Test.c_str();}//char转Ansistring#include <windef.h>void __fastcall TForm1::Button1Click(TObject *Sender){    AnsiString str = "Sample";    char chr[MAX_PATH];    strcpy( chr , str.c_str() );}//Bool转AnsiStringvoid __fastcall TForm1::Button1Click(TObject *Sender){    AnsiString Test=BoolToStr(CheckBox1->Checked);}//Ansistring转boolvoid __fastcall TForm1::Button1Click(TObject *Sender){    AnsiString Test="-1"                    CheckBox1->Checked= StrToBool( Test );}//int转ansistringvoid __fastcall TForm1::Button1Click(TObject *Sender){    int i = 123;    AnsiString str = IntToStr( i );}//AnsiString转doublevoid __fastcall TForm1::Button1Click(TObject *Sender){    AnsiString Test = "123";    long double d = StrToFloat( Test );}//double转AnsiStringvoid __fastcall TForm1::Button1Click(TObject *Sender){    double d = 123.456;    AnsiString str = FloatToStr( d );}//double转AnsiString并四舍五入void __fastcall TForm1::Button1Click(TObject *Sender){    long double d = 123.456121212;    AnsiString str = FloatToStrF( d , ffFixed ,5 , 4 );//说明FloatTostrF里5代表从第几个数字的后一位开始四舍五入,4代表取4位小数。//执行后得到str是123.4600。:roll:}//double转AnsiString使用类似vb的format函数void __fastcall TForm1::Button1Click(TObject *Sender){    double d = 123.456;    AnsiString str = FormatFloat( "000000.00" , d );} //得到 000123.45,当然你可以使用"# . , ; E+ E- xx"等符号,你自己试试 :wink://AnsiString转Tclor型void __fastcall TForm1::Button1Click(TObject *Sender){    AnsiString Test = "0x00FF8080";    TColor Col = StringToColor( Test );}//Tcolor转AnsiStringvoid __fastcall TForm1::Button1Click(TObject *Sender){    TColor Col = 0x00FF8080;    AnsiString str = ColorToString( Col );}//消除AnsiString 中的一部分字符串 代码:void __fastcall TForm1::Button1Click(TObject *Sender){    AnsiString Test = "ABCDEF";    int First = 3; // 消除制定开头    int Length = 2;// 消除制定长度    AnsiString Dstr = Test.Delete( First , Length );}//得到ABEF//在AnsiString 中插入字符串void __fastcall TForm1::Button1Click(TObject *Sender){    AnsiString Test = "ABCDEF";    AnsiString Ins = "12345"; // 插入串    int Pos = 3;  // 在哪插    AnsiString Istr = Test.Insert( Ins , Pos );//得到AB12345CDEF}//取得ansi某一位字符void __fastcall TForm1::Button1Click(TObject *Sender){    AnsiString Test = "ABCDEF";    AnsiString Npos = Test[3];//得到C}//取得AnsiString里最后一个字符void __fastcall TForm1::Button1Click(TObject *Sender){    AnsiString Test = "ABCDEF";    char *Lstr = Test.AnsiLastChar();//得到F}//取出AnsiString字符,这个类似vb的mid函数!void __fastcall TForm1::Button1Click(TObject *Sender){    AnsiString Test = "ABCDEF";    int First = 3; // 3开始取    int Length = 2;// 取2位    AnsiString Getstr = Test.SubString( First , Length );//得到CD} //AnsiString的字母比较void __fastcall TForm1::Button1Click(TObject *Sender){    AnsiString Test = "ABCDEF";    AnsiString Sample = "abcdef";    int Result = Test.AnsiCompare( Sample );//返回1,不同!分大小写。}void __fastcall TForm1::Button1Click(TObject *Sender){    AnsiString Test = "ABCDEF";    AnsiString Sample = "abcdef";    int Result = Test.AnsiCompareIC( Sample );//返回0,相同!没有分大小写,哈哈}


unsigned char *c1=(str).c_str(); 
说了多少遍了,不要这样用。

先不说AnsiString和char*的问题,我觉得初学者首先要记住的就是对内存的管理,大多数情况下谁分配(new)的就由谁来释放(delete)。 
AnsiString是一个类(class),它在内部实现了对内存的管理,使用者不必去理会。
char*是一个指针(pointer),指向一块内存,所以使用者必须负责它的分配和释放。
AnsiString.c_str() 返回的是类实体所管理的内存,第1这个地址可能会改变,第2对块内存的操作可能会破坏类的结构。

不使用中间变量只是一个习惯问题,并不是一定不能这么做,至少在语法是没有问题的。
就像把变量都命名为a,b,c...一样,虽然可以,但不建议这样做,也几乎没有程序这样做,除了一些不友好的小例子。


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 楼上木地板走路声音都很响怎么办 班里团支不搭理我我该怎么办 客户买家具说贵怎么办 英雄联盟超出显示范围怎么办 脸上有斑点怎么办内条 脖子扭到了一动就疼怎么办 杭州限行在路上怎么办 在路上限行了怎么办 微信号不能进群怎么办 在微信约妹子被骗2000怎么办 qq号进不了热聊怎么办 网上买彩票中五百万怎么办 别人登我支付宝怎么办 医保刷卡刷到现金支付怎么办 微信诈骗立案后怎么办 奔跑吧诈骗填写了身份证怎么办 快手绑定的手机号丢了怎么办 球球大作战绑定手机号丢了怎么办 快手绑定手机号丢了怎么办 绑定银行卡的手机号丢了怎么办 爱奇艺绑定的手机号丢了怎么办 高铁票订错时间怎么办 微信音频视频打出没反应怎么办 海尔超低温保存箱低温报警怎么办 孕期吃了烧烤蔬菜怎么办 百姓动迁政府说话不算数怎么办 孕妇用了青草膏怎么办 药材不知道啥名怎么办 诛仙手游鸿蒙紫气不见了怎么办 紫叶兰叶干了怎么办 绿萝叶子中毒了怎么办? 怀孕初期胃疼的厉害怎么办 怀孕胃疼的厉害怎么办 天然气热水器风口一封闭怎么办 热水器着火后火变大怎么办? 人如果没有天魂怎么办 被鬼魂附体了该怎么办 被吸血蠓咬了怎么办 股份公司大股东占用资金怎么办 抱小孩抱的胳膊疼怎么办 一个月好几个性伴侣怎么办