Ansistring 转 char.docx
《Ansistring 转 char.docx》由会员分享,可在线阅读,更多相关《Ansistring 转 char.docx(11页珍藏版)》请在冰点文库上搜索。
Ansistring转char
//Ansistring转char
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringTest="哈哈";
char*chr=Test.c_str();
}
//char转Ansistring
#include
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringstr="Sample";
charchr[MAX_PATH];
strcpy(chr,str.c_str());
}
//Bool转AnsiString
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringTest=BoolToStr(CheckBox1->Checked);
}
//Ansistring转bool
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{AnsiStringTest="-1"
CheckBox1->Checked=StrToBool(Test);
}
//int转ansistring
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
inti=123;
AnsiStringstr=IntToStr(i);
}
//AnsiString转double
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringTest="123";
longdoubled=StrToFloat(Test);
}
//double转AnsiString
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
doubled=123.456;
AnsiStringstr=FloatToStr(d);
}
//double转AnsiString并四舍五入
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
longdoubled=123.456121212;
AnsiStringstr=FloatToStrF(d,ffFixed,5,4);
//说明FloatTostrF里5代表从第几个数字的后一位开始四舍五入,4代表取4位小数。
//执行后得到str是123.4600。
:
roll:
}
//double转AnsiString使用类似vb的format函数
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
doubled=123.456;
AnsiStringstr=FormatFloat("000000.00",d);
}
//得到000123.45,当然你可以使用"#.,;E+E-xx"等符号,你自己试试:
wink:
//AnsiString转Tclor型
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringTest="0x00FF8080";
TColorCol=StringToColor(Test);
}
//Tcolor转AnsiString
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
TColorCol=0x00FF8080;
AnsiStringstr=ColorToString(Col);
}
//消除AnsiString中的一部分字符串代码:
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringTest="ABCDEF";
intFirst=3; //消除制定开头
intLength=2; //消除制定长度
AnsiStringDstr=Test.Delete(First,Length);
}//得到ABEF
//在AnsiString中插入字符串
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringTest="ABCDEF";
AnsiStringIns="12345"; //插入串
intPos=3; //在哪插
AnsiStringIstr=Test.Insert(Ins,Pos);
//得到AB12345CDEF
}
//取得ansi某一位字符
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringTest="ABCDEF";
AnsiStringNpos=Test[3];//得到C
}
//取得AnsiString里最后一个字符
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringTest="ABCDEF";
char*Lstr=Test.AnsiLastChar();//得到F
}
//取出AnsiString字符,这个类似vb的mid函数!
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringTest="ABCDEF";
intFirst=3; //3开始取
intLength=2; //取2位
AnsiStringGetstr=Test.SubString(First,Length);
//得到CD
}
//AnsiString的字母比较
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringTest="ABCDEF";
AnsiStringSample="abcdef";
intResult=Test.AnsiCompare(Sample);
//返回1,不同!
分大小写。
}
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringTest="ABCDEF";
AnsiStringSample="abcdef";
intResult=Test.AnsiCompareIC(Sample);
//返回0,相同!
没有分大小写,哈哈
}
//在AnsiString中寻找字符
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringTest="ABCDEF";
AnsiStringSample="E";
intResult=Test.Pos(Sample);
//返回5,如果你写Sample="haha",就返回0,找不到,哈哈
}
//在AnsiString中找字符串,和上一个类似
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringTest="ABCDEF";
AnsiStringSample="EF";
intResult=Test.Pos(Sample);
//返回5,即E字符的位置
}
//判断字符串长度,类似vb的len
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringTest="拿金币来";
intLen=Test.Length();
//返回8
}
//取得字符串,类似vb的left
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringTest="小苹果然看了这篇文章";
AnsiStringSLstr=Test.SetLength(6);
}//得到"小苹果"
//检测双字节字串
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringChkStr="你好";
intChkPos= 1 ;
if(ByteType(ChkStr,ChkPos)==mbSingleByte){
Edit1->Text="0";
}
else{
Edit1->Text="1";
}//返回1,如果你写ChkStr="fxxk",就返回0
}
//检测空字符串
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringTest="";
boolchk=Test.IsEmpty();
if(chk)
Edit1->Text="1";//返回1
}
//全部变小写vs全部变大写
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringTest="ABCdef";
AnsiStringLstr=Test.LowerCase();
}
代码:
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringTest="ABCdef";
AnsiStringUstr=Test.UpperCase();
}
//类似vb中Trim的去空格函数
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringTest=" ABCDEF ";
AnsiStringTLstr=Test.TrimLeft();
AnsiStringTRstr=Test.TrimRight();
AnsiStringTstr=Test.Trim();
}
//但是,这个处理不了全角的空格代码:
AnsiString__fastcallTForm1:
:
TrimStr(AnsiStringTm,AnsiStringLR)
{
//LR…L:
左除去 R:
右除去 B:
dou除去
intlen;
//左除去
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();
}
}
}
returnTm;
}
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringTest=" 拳脚 ";
AnsiStringRet=TrimStr(Test,"B")
}
//相同字符重复输入
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringSoc=AnsiString:
:
StringOfChar('*',100);
Edit1->Text=Soc;//显示100个*
}
//字符串替换
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringStr="BorlandC++Builderisfree";
AnsiStringFrom="C++Builder";
AnsiStringTo="Delphi";
AnsiStringResult;
Result=StringReplace(Str,From,To,TReplaceFlags()<<
rfReplaceAll<//<<后是参数,得到BorlandDelphiisfree
}
//全角变半角
AnsiStringZen="1234567890";
intLen=Zen.Length();
charbuf[MAX_PATH];
ZeroMemory(buf,sizeof(buf));
LCMapString(GetUserDefaultLCID(),LCMAP_HALFWIDTH,Zen.c_str(),Len,buf,sizeof(buf));
AnsiStringHan=AnsiString(buf);
Edit1->Text=Han;
//半角变全角
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
AnsiStringHan="1234567890";
intLen=Han.Length();
charbuf[MAX_PATH];
ZeroMemory(buf,sizeof(buf));
LCMapString(GetUserDefaultLCID(),LCMAP_FULLWIDTH,Han.c_str(),Len,buf,sizeof(buf));
AnsiStringZen=AnsiString(buf);
}
atoi(将字符串转换成整型数)
相关函数
atof,atol,atrtod,strtol,strtoul
表头文件
#include
定义函数
intatoi(constchar*nptr);
函数说明
atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('')才结束转换,并将结果返回。
返回值
返回转换后的整型数。
附加说明
atoi()与使用strtol(nptr,(char**)NULL,10);结果相同。
范例
/*将字符串a与字符串b转换成数字后相加*/
#include
mian()
{
chara[]=”-100”;
charb[]=”456”;
intc;
c=atoi(a)+atoi(b);
printf(c=%d”,c);
}
执行
c=356
假设定义一个chars='3';想得到它的值3,放入intt中,问要用什么方法?
不知道楼主是不是这么想的,定义一个字符型变量s,让它的A码为3,但在现实的时候现在它的十进制A码?
如果是这样的话
#include
#include
usingnamespacestd;
intmian()
{chars='3',intt;
t=s;
cout<"<
return0;
}
char'0'的ASICC为48根据此原理进行转换即可
intt;
t=(int)s-48;
有两种方式:
1、charc='3';
charstr[2];
str[0]=c;
str[1]=0;//orstr[1]='\0';
inti=atol(str);//ok
2、charc='3';
intt=c-'0';//ok
#include
#include
#include
std:
:
stringstr="123";
std:
:
stringstreamss;
inti=0;
ss<ss>>i;