ansistring 互转

简介: //Ansistring 转 char   void __fastcall TForm1::Button1Click(TObject *Sender)   {   AnsiString Test = "哈哈";   char *chr = Test.
//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();

  }

  // 全角除去

  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;

相关文章
|
JavaScript 前端开发 API
详解React与Vue的性能对比
详解React与Vue的性能对比
640 0
|
10月前
|
人工智能 编解码 测试技术
Mini-InternVL:轻量级多模态大模型,4B 参数量媲美 InternVL2-76B
Mini-InternVL 是上海AI Lab联合清华等机构推出的轻量级多模态大模型,支持高效推理、跨领域适应和动态分辨率输入,适用于多种场景。
734 12
Mini-InternVL:轻量级多模态大模型,4B 参数量媲美 InternVL2-76B
|
11月前
|
编解码 前端开发 开发者
探索无界:前端开发中的响应式设计深度实践与思考###
本文将带你领略响应式设计的精髓,一种超越传统页面布局限制的设计策略,它要求开发者以灵活多变的思维,打造能够无缝适应各种设备与屏幕尺寸的Web体验。通过深入浅出的讲解、实际案例分析以及技术实现细节的探讨,本文目的是激发读者对于响应式设计深层次的理解与兴趣,鼓励在实际应用中不断创新与优化。 ###
382 10
|
人工智能 计算机视觉 网络架构
OpenAI攻克扩散模型短板,清华校友路橙、宋飏合作最新论文
扩散模型在生成AI领域取得显著成果,但其训练不稳定性和采样速度慢限制了发展。OpenAI与清华校友合作,提出连续时间一致性模型(CMs),通过TrigFlow等创新解决了这些问题,大幅提升了训练稳定性和计算效率,实现了与最优模型相当的样本质量,同时减少了计算资源消耗。
221 2
|
存储 监控 数据中心
|
网络虚拟化 数据安全/隐私保护
手把手教网络工程师2种方法如何恢复交换机配置
手把手教网络工程师2种方法如何恢复交换机配置
385 0
|
域名解析 缓存 负载均衡
深度解析Nginx正向代理的原理与实现
Nginx虽然主要被用作反向代理,但也可以通过一些特殊配置用作正向代理。虽然不是它的主流用途,但它仍能以其高性能和高稳定性为用户提供代理服务。不过,出于安全性和匿名性的考虑,在使用它作为正向代理时须谨慎配置,并根据实际需求做出调整。
389 0
|
jenkins Java 应用服务中间件
Jenkins【部署 01】两种方式+两种环境部署最新版本 Jenkins v2.303.2 WAR包(直接使用 java -jar+使用Tomcat的Web端部署)
Jenkins【部署 01】两种方式+两种环境部署最新版本 Jenkins v2.303.2 WAR包(直接使用 java -jar+使用Tomcat的Web端部署)
361 0
|
机器学习/深度学习 人工智能 自然语言处理
利用AI辅助工具提高软件测试效率与准确性
【2月更文挑战第16天】 在快速发展的软件行业中,测试工作是确保产品质量的关键环节。然而,传统的测试方法往往耗时且容易遗漏错误。本文介绍了一种结合人工智能(AI)技术的测试辅助工具,旨在提升软件测试的效率和准确性。通过引入智能化的缺陷预测、自动化测试用例生成以及实时反馈机制,该工具能够显著减少人力资源消耗,同时提高发现潜在问题的能力,为软件测试领域带来革新。
|
监控 JavaScript 前端开发
统计项目代码行数轻松搞定:使用 Node.js 脚本自动统计代码量
统计项目代码行数轻松搞定:使用 Node.js 脚本自动统计代码量
557 0