AnsiString用法

虽然C++Builder这个工具相当老气了,但是功能不输当下,我正在使用中...

关于 AnsiString 不纠来历,只看一些常见成员函数用法,均实测:

//2018-10-9

/*
* 编号:Number 1
* 函数:substring
* 说明:截取AnsiString中字符串,即获取子串
*/ 
void __fastcall TMainForm::TestAnsiString1() 
{ 
    AnsiString str = "LINING";

	//从第二位开始取,取够三位,得:"INI"
    AnsiString retStr = str.SubString(2 , 3); 
}

/*
* 编号:Number 2
* 函数:Delete
* 说明:删除 AnsiString 中的一部分字符串
*/ 
void __fastcall TMainForm::TestAnsiString2() 
{
    AnsiString str = "LINING";

    //从第二位开始,删够三位:得:"LNG"
    AnsiString retStr = str.Delete(2 , 3);  
} 

/*
* 编号:Number 3
* 函数:Insert
* 说明:在AnsiString 中插入字符串
*/ 
void __fastcall TMainForm::TestAnsiString3() 
{
    AnsiString str = "LINING";
    AnsiString src = "123456";

    //从三的位置开始插入 src 的:"LI123456NING"
    AnsiString retStr = str.Insert(src, 3);  
}

/*
* 编号:Number 4
* 函数:[]
* 说明:取得 AnsiString 某一位字符
*/ 
void __fastcall TMainForm::TestAnsiString4() 
{
    AnsiString str = "LINING";

    //获取第三个字符,得:"N"
    AnsiString retStr = str[3];
}

/*
* 编号:Number 5
* 函数:Pos
* 说明:在AnsiString中寻找字符
*/ 
void __fastcall TMainForm::TestAnsiString5() 
{
    AnsiString str = "LINING";

    //找到返回第一次找到的位置,找不到返回0
    int result1 = str.Pos("N");
    int result2 = str.Pos("NING");
}

/*
* 编号:Number 6
* 函数:AnsiPos
* 说明:在 AnsiString 中找字符串:找字符 多用 Pos
*/ 
void __fastcall TMainForm::TestAnsiString6() 
{
    AnsiString str = "LINING";
	
    //找到返回第一次找到的位置,找不到返回0
    int result2 = str.AnsiPos("NING");
}

/*
* 编号:Number 7
* 函数:AnsiLastChar
* 说明:取 AnsiString 里最后一个字符
*/ 
void __fastcall TMainForm::TestAnsiString7() 
{
    AnsiString str = "LINING";

    //"G"
    char *lstr = str.AnsiLastChar();
}

/*
* 编号:Number 8
* 函数:AnsiString::StringOfChar
* 说明:相同字符重复输入
*/ 
void __fastcall TMainForm::TestAnsiString8() 
{
    //"GGGGGGGGGG"
    AnsiString str = AnsiString::StringOfChar('G' , 10 );
}

/*
* 编号:Number 9
* 函数:AnsiCompare
* 说明:AnsiString 的字母比较:区分大小写
*/ 
void __fastcall TMainForm::TestAnsiString9() 
{
    AnsiString S1 = "LINING";
    AnsiString S2 = "LINING";

    //S1 > S2	> 0
    //S1 < S2	< 0
    //S1 = S2	= 0
    int result = S1.AnsiCompare("LIING");
}

/*
* 编号:Number 10
* 函数:AnsiCompareIC
* 说明:AnsiString 的字母比较:不区分大小写
*/ 
void __fastcall TMainForm::TestAnsiString10() 
{
    AnsiString S1 = "LINING";
    AnsiString S2 = "LINING";

    //S1 > S2	> 0
    //S1 < S2	< 0
    //S1 = S2	= 0
    int result = S1.AnsiCompareIC(S2);
}

/*
* 编号:Number 11
* 函数:SetLength
* 说明:取得字符串
*/ 
void __fastcall TMainForm::TestAnsiString11() 
{
    AnsiString str = "LINING";
	
    //得: "LIN" 只要前三个
    AnsiString retStr = str.SetLength(3);
}

/*
* 编号:Number 12
* 函数:Length
* 说明:获取字符串长度
*/ 
void __fastcall TMainForm::TestAnsiString12() 
{
    AnsiString str = "LINING";

    //得:6
    int len = str.Length();
}

/*
* 编号:Number 13
* 函数:TrimLeft、TrimRight、Trim
* 说明:去除 AnsiString 字符串中的空格
*/ 
void __fastcall TMainForm::TestAnsiString13() 
{
    AnsiString str = "     LIN   ING     ";

    AnsiString str1 = str.TrimLeft();   //去左空格
    AnsiString str2 = str.TrimRight();  //去右空格
    AnsiString str3 = str.Trim();       //去两边空格
}

/*
* 编号:Number 14
* 函数:LowerCase、UpperCase
* 说明:大小写转换
*/ 
void __fastcall TMainForm::TestAnsiString14() 
{
	//大写转小写
    AnsiString test = "LINING";
    AnsiString str1 = test.LowerCase();

	//小写转大写
    AnsiString test1 = "lining";
    AnsiString str2 = test1.UpperCase();
}

/*
* 编号:Number 15
* 函数:StringReplace (参数:TReplaceFlags、rfReplaceAll、rfIgnoreCase)
* 说明:字符串替换
*/ 
void __fastcall TMainForm::TestAnsiString15() 
{
    AnsiString str = "lining chi tu";
    AnsiString from = "lining";
    AnsiString to = "you";

    //you chi tu
    AnsiString result = StringReplace( str, from, to, TReplaceFlags() << rfReplaceAll << rfIgnoreCase );
}

/*
* 编号:Number 16
* 函数:AnsiToUtf8
* 说明:转换为 UTF-8
*/ 
void __fastcall TMainForm::TestAnsiString16() 
{
    AnsiString strAnsi = "LINING";
	
	//转换为utf-8   
    UTF8String sUtf8 = AnsiToUtf8(strAnsi);
}

/*
* 编号:Number 17
* 函数:IsEmpty
* 说明:判空串
*/ 
void __fastcall TMainForm::TestAnsiString17() 
{
    AnsiString str = "LINING";
	
	//是空返回true,非空返回 false
    bool chk = str.IsEmpty(); 
}

/*
* 编号:Number 18
* 函数:ByteType、mbSingleByte
* 说明:判断双字节
*/ 
void __fastcall TMainForm::TestAnsiString18() 
{
    AnsiString str = "李宁lining";

    //从第 5 位置开始
    if (ByteType(str ,5) == mbSingleByte )
    {
        //0
        //单字节字符串
    }
    else
    {
        //1
        //双字节字符串
    }
}

/*
* 编号:Number 19
* 函数:c_str
* 说明:AnsiString 转 char*
*/ 
void __fastcall TMainForm::TestAnsiString19() 
{
    AnsiString str = "LINING";
	
    char *chr = str.c_str();
	
    // char* 到 AnsiString
    AnsiString str2 = AnsiString(chr);
}

/*
* 编号:Number 20
* 函数:bool 转 AnsiString
* 说明:BoolToStr
*/ 
void __fastcall TMainForm::TestAnsiString20() 
{
    AnsiString str = BoolToStr(true);
}

/*
* 编号:Number 21
* 函数:StrToBool
* 说明:AnsiString to bool
*/ 
void __fastcall TMainForm::TestAnsiString21() 
{
    bool flag = StrToBool("10"); 
}

/*
* 编号:Number 22
* 函数:IntToStr
* 说明:int to AnsiString
*/ 
void __fastcall TMainForm::TestAnsiString22() 
{
    AnsiString str = IntToStr(200); 
}

/*
* 编号:Number 23
* 函数:StrToFloat
* 说明:AnsiString转double
*/ 
void __fastcall TMainForm::TestAnsiString23() 
{
    AnsiString str = "2658";
    long double d = StrToFloat(str);
}

/*
* 编号:Number 24
* 函数:FloatToStr
* 说明:double转AnsiString 
*/ 
void __fastcall TMainForm::TestAnsiString24() 
{
    AnsiString str = FloatToStr(456.123);
}

/*
* 编号:Number 25
* 函数:FloatToStrF
* 说明:double转AnsiString并四舍五入
*/ 
void __fastcall TMainForm::TestAnsiString25() 
{
    long double d = 123.456121212;

    //说明floattostrf里5代表从第几个数字的后一位开始四舍五入,4代表取4位小数
    AnsiString str = FloatToStrF( d , ffNumber ,5 , 4 );   
}

/*
* 编号:Number 26
* 函数:FormatFloat
* 说明:格式化后转AnsiString
*/ 
void __fastcall TMainForm::TestAnsiString26() 
{
    double d = 123.456; 
	
    AnsiString str = FormatFloat( "000000.00" , d ); //还有其他参数  
}

/*
* 编号:Number 27
* 函数:StringToColor
* 说明:字符串转颜色
*/ 
void __fastcall TMainForm::TestAnsiString27() 
{
    AnsiString test = "0x00ff8080";
	 
    tcolor col = StringToColor( test );    
}

/*
* 编号:Number 28
* 函数:ColorToString
* 说明:颜色转字符串
*/ 
void __fastcall TMainForm::TestAnsiString28() 
{
    tcolor col = 0x00ff8080; 
    
    AnsiString str = ColorToString(col);   
}

可能还有更多,工作中遇到就记录,持续更新...

赐教!

你可能感兴趣的:(C++Builder)