C++ builder之 字符串转换

//Ansistring 转char

void __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转AnsiString

void __fastcall TForm1::Button1Click(TObject *Sender)

{

AnsiString Test=BoolToStr(CheckBox1->Checked);

}

 

//Ansistring转bool

void __fastcall TForm1::Button1Click(TObject *Sender)

{ AnsiString Test="-1"

    CheckBox1->Checked=StrToBool( Test );

}

 

//int转ansistring

void __fastcall TForm1::Button1Click(TObject *Sender)

{

    int i = 123;

    AnsiString str = IntToStr( i);

}

 

//AnsiString转double

void __fastcall TForm1::Button1Click(TObject *Sender)

{

    AnsiString Test ="123";

    long double d = StrToFloat(Test );

}

 

//double转AnsiString

void __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转AnsiString

void __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,相同!没有分大小写,哈哈

}

//在AnsiString中寻找字符

void __fastcall TForm1::Button1Click(TObject *Sender)

{

    AnsiString Test ="ABCDEF";

    AnsiString Sample ="E";

    int Result = Test.Pos( Sample);

//返回5,如果你写Sample="haha",就返回0,找不到,哈哈

}

//在AnsiString中找字符串,和上一个类似

void __fastcall TForm1::Button1Click(TObject *Sender)

{

    AnsiString Test ="ABCDEF";

    AnsiString Sample ="EF";

    int Result = Test.Pos( Sample);

//返回5,即E字符的位置

}

//判断字符串长度,类似vb的len

void __fastcall TForm1::Button1Click(TObject *Sender)

{

    AnsiString Test = "拿金币来";

    int Len = Test.Length();

//返回8

}

//取得字符串,类似vb的left

void __fastcall TForm1::Button1Click(TObject *Sender)

{

    AnsiString Test = "小苹果然看了这篇文章";

    AnsiString SLstr =Test.SetLength(6);

}//得到"小苹果"

 

//检测双字节字串

void __fastcall TForm1::Button1Click(TObject *Sender)

{

AnsiString ChkStr = "你好";

int ChkPos =  1  ;

if ( ByteType( ChkStr , ChkPos ) == mbSingleByte ){

    Edit1->Text="0";

    }

    else{

    Edit1->Text="1";

    }//返回1,如果你写ChkStr="fxxk",就返回0

}

//检测空字符串

void __fastcall TForm1::Button1Click(TObject *Sender)

{

    AnsiString Test ="";

    bool chk = Test.IsEmpty();

    if (chk )

    Edit1->Text="1";//返回1

}

//全部变小写vs全部变大写

void __fastcall TForm1::Button1Click(TObject *Sender)

{

    AnsiString Test ="ABCdef";

    AnsiString Lstr =Test.LowerCase();

}

void __fastcall TForm1::Button1Click(TObject *Sender)

{

    AnsiString Test ="ABCdef";

    AnsiString Ustr =Test.UpperCase();

}

//类似vb中Trim 的去空格函数

void __fastcall TForm1::Button1Click(TObject *Sender)

{

    AnsiString Test ="     ABCDEF      ";

    AnsiString TLstr =Test.TrimLeft();

   AnsiString TRstr = Test.TrimRight();

  AnsiString Tstr = Test.Trim();

}

 

//但是,这个处理不了全角的空格 代码:

AnsiString __fastcall TForm1::TrimStr( AnsiString Tm ,AnsiString LR )

{

    // LR … L:左除去   R:右除去   B:dou除去

    int len;

    // 左除去

    if ( LR == "L" || LR== "B" ){

        len =Tm.Length();

        while( Tm.SubString(1,1) == " " || Tm.SubString(1,2) == " "){

            //半角除去

            if( Tm.SubString(1,1) == " " ){

                Tm= Tm.SubString(2,len);

                len= Tm.Length();

            }

            //全角除去

            elseif ( Tm.SubString(1,2) == " " ){

                Tm= Tm.SubString(3,len);

                len= Tm.Length();

            }

        }

    }

    // 右除去

    if ( LR == "R" || LR== "B" ){

        len =Tm.Length();

        while( Tm.SubString(len,1) == " " || Tm.SubString(len-1,2) == "" ){

            //半角除去

            if( Tm.SubString(len,1) == " " ){

                len= Tm.Length();

                Tm= Tm.SubString(1,len-1);

                len= Tm.Length();

            }

            //全角除去

            elseif ( Tm.SubString(len-1,2) == " " ){

                len= Tm.Length();

                Tm= Tm.SubString(1,len-2);

                len= Tm.Length();

            }

        }

    }

    return Tm;

}

void __fastcall TForm1::Button1Click(TObject *Sender)

{

    AnsiString Test = " 拳脚 ";

    AnsiString Ret =TrimStr(Test,"B")

}

//相同字符重复输入

void __fastcall TForm1::Button1Click(TObject *Sender)

{

    AnsiString Soc =AnsiString::StringOfChar( '*' , 100 );

   Edit1->Text=Soc ;//显示100个*

}

//字符串替换

void __fastcall TForm1::Button1Click(TObject *Sender)

{

    AnsiString Str = "BorlandC++ Builder is free"; 

    AnsiString From = "C++Builder";                     

    AnsiString To ="Delphi";                             

    AnsiStringResult;                                     

    Result = StringReplace( Str,From, To, TReplaceFlags() <<

rfReplaceAll << rfIgnoreCase );

//<<后是参数,得到BorlandDelphi is free

}

//全角变半角

    AnsiString Zen = "1234567890";

    int Len = Zen.Length();

    char buf[MAX_PATH];

    ZeroMemory( buf, sizeof( buf ));

    LCMapString(GetUserDefaultLCID(), LCMAP_HALFWIDTH, Zen.c_str(), Len, buf, sizeof( buf ) );

    AnsiString Han = AnsiString(buf );

    Edit1->Text=Han;

 

//半角变全角

void __fastcall TForm1::Button1Click(TObject *Sender)

{

    AnsiString Han ="1234567890";

    int Len = Han.Length();

    char buf[MAX_PATH];

    ZeroMemory( buf, sizeof( buf ));

    LCMapString(GetUserDefaultLCID(), LCMAP_FULLWIDTH, Han.c_str(), Len, buf, sizeof( buf ) );

    AnsiString Zen = AnsiString(buf );

}

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值