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;
分享到:
相关推荐
- **wchar_t到char**:与上述相反,从宽字符转换到窄字符也需要显式转换,通常使用AnsiString进行转换。 3. **字符串转换方法** - **AnsiString到string**:可以直接使用AnsiString的c_str()方法获取C风格字符串...
本压缩包文件“C++Builder String, UNICODE, UTF8, ANSI互转的类.rar_c”提供了一个专门用于这些转换的类库,帮助开发者在各种编码之间无缝切换。下面我们将详细探讨相关的知识点。 1. **C++Builder String 类型** ...
`AnsiString` 支持多种类型转换,如从 `char`、`char*`、`int`、`double` 等类型转换到 `AnsiString`。这些转换可以通过构造函数或转换运算符完成。 ```cpp // 从 int 转换 AnsiString intString = 49; // 从 ...
6. **Char**(Delphi)与 **char**(C++):`Char`在Delphi中同样表示单个字符,与C++中的`char`一致。 #### 字符串类型对应 1. **AnsiString**(Delphi)与 **AnsiString**(C++):`AnsiString`在Delphi中表示...
char* chr = Test.c_str(); ``` 上述代码展示了如何将AnsiString类型的变量转换为C风格的char数组。通过调用`.c_str()`方法,可以获取AnsiString的内部字符指针,从而实现类型转换。 #### char到Ansistring的转换 ...
### ANSI String与C风格字符串(char*)之间的转换 #### ANSI String转C风格字符串 ```cpp #include void __fastcall TForm1::Button1Click(TObject* Sender) { AnsiString str = "Sample"; char chr[MAX_PATH]; ...
AnsiString 的基本特点是使用 char 类型的数组来存储字符串数据,每个元素占用一个字节。这样可以节省内存空间,提高程序的运行效率。 在实际应用中,AnsiString 广泛应用于字符串的操作和处理,例如字符串的连接、...
* String 类型映射为 UnicodeString 而不是 AnsiString * Char 类型映射为 WideChar(2 bytes not 1 byte),并且是 UTF-16 字符 * PChar 类型映射为 PWideChar * C++ 中,System::String 映射到 UnicodeString 类 * ...
- **PAnsiChar**: 指向ANSI字符的32位指针,同样在C++Builder中由`unsigned char*`类型实现。 ### 7. 其他类型 - **Comp**: 这是一个64位浮点数类型,在C++Builder中由`Comp`类实现。 - **OleVariant**: 表示OLE...
3. **PAnsiChar**: 在 Delphi 中表示为 32 位 ANSI 型字符指针,在 C++ 中对应的是 `unsigned char*`。 #### Win32 API 与 C 语言数据类型对照表 1. **HANDLE**: 在 Win32 API 中表示为句柄类型,在 C 语言中对应...
3. **Char**: 在当前版本的 Delphi 中,Char 类型等同于 AnsiChar,但在未来版本中可能会改为等同于 WideChar。因此,Char 类型的设计考虑了与 Unicode 的兼容性。 字符串在 Delphi 中有多种类型,每种都有特定的...
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...
在描述中提到的“delphi 开发的UTF8 ansistring转换动态库”是一个由DELPHI编写的DLL文件,名为UTF8_DLL.dll。DLL文件允许其他应用程序通过接口调用来执行特定的功能,这里的功能是进行UTF8和ANSI String之间的转换...
- `AnsiString`是Delphi的字符串类,对应C++的`AnsiString`类或`std::string`(对于ASCII编码)。 - `String[n]`是老式的Delphi字符串,限制长度为1到255个字节,用模板类`SmallString<n>`表示。 - `ShortString`...
把字符串转换成16进制,送到DEMO中显示,就像miniHEX那样自己去显示16进制。 unsigned char *HexString:ASCII字符串 函数返回AnsiString标准字符 const unsigned short HSCount:转换个数
delphi7和delphi2010直接因字符串编码方式不一样,不能直接调用,本例子是本人编写的ascii码和unico之间的转变。同时也可以解决很多delphi2010调用delphi7编写的动态库连接问题
解决方法是将 Length() 改为 Length() * SizeOf(Char) 或者使用专门用于字节长度的函数,如 ByteLength(),但需要注意其对 AnsiString 的支持。 3. **字符范围检查**: - 在 Delphi 2010 及以后的版本中,使用 'a'...
- **AnsiString, String (Delphi)**:在C++中通过`^AnsiString`表示,支持长字符串。 - **WideString (Delphi)**:对应C++中的`^WideString`,用于宽字符串的处理。 #### 指针类型 - **PChar, PAnsiChar (Delphi)**...
Compress(CompressedBytes, PAnsiChar(AnsiString(OriginalString)), length(OriginalString) * sizeof(Char)); // 解压缩字符串 SetLength(DecompressedString, ZLibMaxUncompressSize(length(CompressedBytes...