AnsiString 使用大全

本文介绍了ANSI字符串在编程中的基本操作与转换方法,包括ANSI字符串到字符、布尔值、整数、浮点数的转换,以及ANSI字符串到TColor类型的转换。此外,还提供了消除字符串部分字符、在字符串中插入字符、获取特定位置字符、查找字符和字符串、字符串长度检测、字符串去空格、检测双字节字符串、检测空字符串、字符串全小写或大写转换、Trim函数使用等实用技巧。

http://fangsz.bloghome.cn/posts/29160.html

程序设计 /金秋十月 发表于2006-05-16, 10:59

最近编程用到AnsiString,从网上搜得此文章,向文章作者表示感谢 

//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 );
}
 

//intansistring
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 );
}
 

//doubleAnsiString并四舍五入
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    long double d = 123.456121212;
    AnsiString str = FloatToStrF( d , ffFixed ,5 , 4 );
//
说明FloatTostrF5代表从第几个数字的后一位开始四舍五入,4代表取4位小数。
//
执行后得到str123.4600:roll:
   
}


//double
AnsiString使用类似vbformat函数
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字符,这个类似vbmid函数!
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字符的位置
}


//
判断字符串长度,类似vblen
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    AnsiString Test = "
拿金币来";
    int Len = Test.Length();
//
返回8
}


//
取得字符串,类似vbleft
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();
}


//
类似vbTrim 的去空格函数
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();
            }
            //
全角除去
            else if ( 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();
            }
            //
全角除去
            else if ( 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 = "Borland C++ Builder is free"; 
    AnsiString From = "C++ Builder";                     
    AnsiString To = "Delphi";                             
    AnsiString Result;                                     
    Result = StringReplace( Str, From, To, TReplaceFlags() <<
rfReplaceAll << rfIgnoreCase );
//<<
后是参数,得到Borland Delphi 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 );
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值