`
icelander
  • 浏览: 71588 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

AnsiString, String, char *,char

阅读更多
AnsiString 是一个类,String 是一个结构,char* 是一个指针 。String是Pascal的类型原型,因为C++中没有字符串数据类型的,因此使用char*来存储,char*必须是以‘/0'结尾的,否则不能按照C++的“字符串”来处理。AnsiString是为了兼容VCL中Object Pascal而写的一个类,其实这个类的内核处理还是ObjectPascal中的代码,AnsiString是自动分配内存的,并且是一个纯C++类, 和其它VCL类不一样,当声明一个AnsiString 的时候AnsiString本身只有一个指向另外内存的指针,其指向的内存才是真正存储字符串的位置,c_str()就是获取这个字符串地址的函数,但是 这个内存地址会根据AnsiString对象大小的改变而改变,就是说这个c_str()每一个返回的有可能不一样。

String在C++ Builder中和AnsiString是一样的,只是为了兼容Pascal中的String类型而作的typedefine而已。

AnsiString.c_str() 就是返回数据的字符串指针。

下面AnsiString ===>Char *
     char * p;
     AnsiString a = "asdf";    
     p = a.c_str();  

接下来AnsiString ==>char

     char p[64];

     AnsiString a;

     strcpy(p,a.c_str());

最后char ===> AnsiString


     AnsiString a;
     char p[25]= "asdf";
     a = (AnsiString)p;


unsigned char 轉成 AnsiString

unsugned char myKey[32]="XXX";

(AnsiString)(Char *)myKey;
分享到:
评论

相关推荐

    C++Builder String,UNICODE,UTF8,ANSI互转的类.rar_c

    C++Builder String,UNICODE,UTF8,ANSI互转的类,类的互相转换

    BCB XE2的MD5码代码

    String str=this->Edit1->Text; MD5 md5; int i=str.Length(); char *p=new char[i+1]; AnsiString tmp=str; strcpy(p,tmp.c_str()) ; p[i+1]='\0'; md5.update(p,i); str=md5.TranToString(); delete []p...

    选择文件夹 dll 封装

    void _stdcall (*GetSelectPath)(char*sPath,AnsiString sTitle); HMODULE pHModule; pHModule=::LoadLibraryA("GetPath.dll"); if(pHModule>0) { (FARPROC&)GetSelectPath=::GetProcAddress(pHModule,...

    FastReport4.14.1EnterpriseFullSourceD4-RADStudioXE4_CS

    delphi15 hint: frxGraphicUtils.pas(187) Warning: W1057 Implicit string cast from 'AnsiString' to 'string' delphi15 hint: frxGraphicUtils.pas(189) Warning: W1057 Implicit string cast from 'AnsiChar' to...

    delohi7和delphi2010字符串之间的转换

    delphi7和delphi2010直接因字符串编码方式不一样,不能直接调用,本例子是本人编写的ascii码和unico之间的转变。同时也可以解决很多delphi2010调用delphi7编写的动态库连接问题

    C++ Builder中的类型转换

    C++ Builder中的类型转换,非常实用。很全。各种类型都有实例。

    AnsiString总结

    在C++builder中对AnsiString用法的一些总结,主要个人搜集整理的资料。

    Delphi中String与WideString的区别2.docx

    Delphi中String与WideString的区别2.docx

    C++ Buikder VCL AnsiString操作总结

    本人总结的最常用的AnsiString操作用法

    ASCII转换16进制字符

    把字符串转换成16进制,送到DEMO中显示,就像miniHEX那样自己去显示16进制。 unsigned char *HexString:ASCII字符串 函数返回AnsiString标准字符 const unsigned short HSCount:转换个数

    AnsiString 使用大全.txt

    AnsiString 使用大全.txt 适合初学者使用

    UTF8与ansi string转换处理(DELPHI7开发)

    delphi 开发的UTF8 ansistring转换动态库。 通过DELPHI与C++测试。 前面上传的资源未经过仔细验证,有问题,不好意思,重新修正上传

    Ansistring使用大全.doc

    这是讲解AnsiStirng类型字符串的用法的文档,里面提及了该类的诸多常用方法

    delphi7高精度计算单元 high.dcu

    基于ansistring类型开发了delphi7的高精度计算单元high.dcu,其中包含高精度加法、减法、乘法、除法、最小公倍数、最大公约数 等计算函数或过程。其接口文件如下: unit high; interface const intmax=32767; ...

    UTF8文本处理动态库

    UTF8字符串与AnsiString(string)字符串转换 将AnsiString字符串保存成utf8文件; 从UTF8文件中读取(文本)内容;

    delphi与java 加密解密 DES/CBC/PKCS5Padding

    len := length(AnsiString(str)); xx:= char( 8- (len mod 8)); if len xuhuan:=0 else xuhuan:=round(len/8); for i:=0 to xuhuan do begin for j:=0 to 7 do begin if ((i*8+j+1)) then //关键这一步,网上...

    Delphi通过主机名获取IP

    很简单的一个例子,用delphi2010编写的,网上有的例子会出现网上的教程是Pchar(IPAddress) 这样会提示 Incompatible types: 'Char' and 'AnsiChar' 处理 解决办法1:参数格式不变,使用的时候麻烦一点。先把...

    TMS-Component-Pack-8.0.0.0 AdvMemo 中文支持修正..

    花费一整天修改支持中文,虽然不完美也可以用了. 如果有大神能改完美, 就修改下,谢谢!!! 主要是 修改string 到ansistring char 到ansichar, 判断双字节字符

    Delphi简体转繁体—繁体转简体

    function GBCht2Chs(GBStr: string): AnsiString; function GBChs2Cht(GBStr: string): AnsiString; implementation function GBCht2Chs(GBStr: string): AnsiString; {进行GBK繁体转简体} var Len: integer; ...

    Delphi2009、Delphi2010的GBK繁体转简体函数

    Delphi2007之前的API繁简转函数在Delphi2009版本出现后不能用,原因在于之前版本的String默认为AnsiString,而Delphi2007之后的String默认为WideString,同样,PChar指针也就为PAnsiString,所以调用Windows API函数...

Global site tag (gtag.js) - Google Analytics