`
icelander
  • 浏览: 72531 次
  • 性别: 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 6 到 XE2 的升级问题汇总

    - **wchar_t到char**:与上述相反,从宽字符转换到窄字符也需要显式转换,通常使用AnsiString进行转换。 3. **字符串转换方法** - **AnsiString到string**:可以直接使用AnsiString的c_str()方法获取C风格字符串...

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

    本压缩包文件“C++Builder String, UNICODE, UTF8, ANSI互转的类.rar_c”提供了一个专门用于这些转换的类库,帮助开发者在各种编码之间无缝切换。下面我们将详细探讨相关的知识点。 1. **C++Builder String 类型** ...

    AnsiString总结

    `AnsiString` 支持多种类型转换,如从 `char`、`char*`、`int`、`double` 等类型转换到 `AnsiString`。这些转换可以通过构造函数或转换运算符完成。 ```cpp // 从 int 转换 AnsiString intString = 49; // 从 ...

    delphi和c++的数据类型对应

    6. **Char**(Delphi)与 **char**(C++):`Char`在Delphi中同样表示单个字符,与C++中的`char`一致。 #### 字符串类型对应 1. **AnsiString**(Delphi)与 **AnsiString**(C++):`AnsiString`在Delphi中表示...

    AnsiString 使用大全.txt

    char* chr = Test.c_str(); ``` 上述代码展示了如何将AnsiString类型的变量转换为C风格的char数组。通过调用`.c_str()`方法,可以获取AnsiString的内部字符指针,从而实现类型转换。 #### char到Ansistring的转换 ...

    各种string类型转换

    ### ANSI String与C风格字符串(char*)之间的转换 #### ANSI String转C风格字符串 ```cpp #include void __fastcall TForm1::Button1Click(TObject* Sender) { AnsiString str = "Sample"; char chr[MAX_PATH]; ...

    Ansistring使用大全.doc

    AnsiString 的基本特点是使用 char 类型的数组来存储字符串数据,每个元素占用一个字节。这样可以节省内存空间,提高程序的运行效率。 在实际应用中,AnsiString 广泛应用于字符串的操作和处理,例如字符串的连接、...

    win7系统delphi7和delphi2010下安装spcomm串口控件的补充

    * String 类型映射为 UnicodeString 而不是 AnsiString * Char 类型映射为 WideChar(2 bytes not 1 byte),并且是 UTF-16 字符 * PChar 类型映射为 PWideChar * C++ 中,System::String 映射到 UnicodeString 类 * ...

    C++Builder和Delphi的数据类型比较

    - **PAnsiChar**: 指向ANSI字符的32位指针,同样在C++Builder中由`unsigned char*`类型实现。 ### 7. 其他类型 - **Comp**: 这是一个64位浮点数类型,在C++Builder中由`Comp`类实现。 - **OleVariant**: 表示OLE...

    delphi与C数据类型对照表

    3. **PAnsiChar**: 在 Delphi 中表示为 32 位 ANSI 型字符指针,在 C++ 中对应的是 `unsigned char*`。 #### Win32 API 与 C 语言数据类型对照表 1. **HANDLE**: 在 Win32 API 中表示为句柄类型,在 C 语言中对应...

    Delphi 的字符及字符串.doc

    3. **Char**: 在当前版本的 Delphi 中,Char 类型等同于 AnsiChar,但在未来版本中可能会改为等同于 WideChar。因此,Char 类型的设计考虑了与 Unicode 的兼容性。 字符串在 Delphi 中有多种类型,每种都有特定的...

    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...

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

    在描述中提到的“delphi 开发的UTF8 ansistring转换动态库”是一个由DELPHI编写的DLL文件,名为UTF8_DLL.dll。DLL文件允许其他应用程序通过接口调用来执行特定的功能,这里的功能是进行UTF8和ANSI String之间的转换...

    Delphi和C++数据类型对照表

    - `AnsiString`是Delphi的字符串类,对应C++的`AnsiString`类或`std::string`(对于ASCII编码)。 - `String[n]`是老式的Delphi字符串,限制长度为1到255个字节,用模板类`SmallString<n>`表示。 - `ShortString`...

    ASCII转换16进制字符

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

    delohi7和delphi2010字符串之间的转换

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

    Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结

    解决方法是将 Length() 改为 Length() * SizeOf(Char) 或者使用专门用于字节长度的函数,如 ByteLength(),但需要注意其对 AnsiString 的支持。 3. **字符范围检查**: - 在 Delphi 2010 及以后的版本中,使用 'a'...

    c++_VC++与Delphi变量类型对应关系.doc

    - **AnsiString, String (Delphi)**:在C++中通过`^AnsiString`表示,支持长字符串。 - **WideString (Delphi)**:对应C++中的`^WideString`,用于宽字符串的处理。 #### 指针类型 - **PChar, PAnsiChar (Delphi)**...

    delphi字符串压缩

    Compress(CompressedBytes, PAnsiChar(AnsiString(OriginalString)), length(OriginalString) * sizeof(Char)); // 解压缩字符串 SetLength(DecompressedString, ZLibMaxUncompressSize(length(CompressedBytes...

Global site tag (gtag.js) - Google Analytics