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;

AnsiString, String, char,char的更多相关文章

  1. C++处理char*,char[],string三种类型间的转换

    前言 在C和C++中,有一个相当重要的部分,就是字符串的编程描述.在学C的时候,很多人习惯了char[],char*表示法,直到遇见了C++后,出现了第三者:string.这时候,很多初学者就会在这三 ...

  2. 【C/C++】字符数组:char,char*,char a[], char *a[], char **s 的区别与联系/const char*和char*的区别

    一.char,char*,char a[], char *a[], char **s 的区别与联系 C语言中的字符串是字符数组,可以像处理普通数组一样处理字符串. 可以理解为在内存中连续存储的字符. ...

  3. char[],char *,string之间转换

    char []与char *之间转换 char []转char *:直接进行赋值即可 // char[] 转char *char str[] = "lala";char *str1 ...

  4. QT QString转char*,char*转QString;简单明了,看代码。

    //原始QStringQString qs = QString::fromLocal8Bit("我的");std::string strQs = qs.toStdString(); ...

  5. C++ 中 int,char*,string,CString之间相互转换-整理

    <多字符集下> #include <string> //使用C++标准库的string类时, 定义时 std::string str; using namespace std; ...

  6. C++ 中int,char,string,CString类型转换

      1. c++中string到int的转换 1) 在C标准库里面,使用atoi: #include <cstdlib> #include <string> std::stri ...

  7. char*,const char*和string 三者转换

    1. const char* 和string 转换 (1) const char*转换为 string,直接赋值即可. EX: const char* tmp = "tsinghua&quo ...

  8. C++ char*,const char*,string,int 的相互转换

    C++ char*,const char*,string,int 的相互转换   1. string转const char* string s ="abc";const char* ...

  9. unicode下各种类型转换,CString,string,char*,int,char[]

    把最近用到的各种unicode下类型转换总结了一下,今后遇到其他的再补充: 1.string转CString string a=”abc”; CString str=CString(a.c_str() ...

随机推荐

  1. 3. Image Structure and Generation

    名词 Extensible Linking Format(ELF) 3.1 The structure of an ARM ELF image ARM ELF映像包含sections, regions ...

  2. centos安装完php-fpm、nginx后访问网站出现权限问题

    nginx.conf www.conf 这两个文件上面改用户为www. 如果不知道自己的配置文件位置问题,使用命令查找文件位置: find / -name 'nginx.conf' -print 添加 ...

  3. python生成当前时间的时间戳

    有时会用到时间戳,查了相关资料,在这里记一下 主要有两种方案: import datetime time_stamp = '{0:%Y-%m-%d-%H-%M}'.format(datetime.da ...

  4. ES6 学习 -- 解构赋值

    一.数组解构 **数组解构,解构出来的值跟数组下标是一一对应的,如果左边变量多于右边数组,则左边后面部分变量值为undefined,如果右边数组元素个数多于左边解构变量个数,则左边变量全都有值,且一一 ...

  5. 手动从零使用ELK构建一套搜索服务

    前言 这两天需要对接一个新的搜索业务,由于测试机器还没到位,所以就自己创造条件,通过在Windows上安装VM虚拟机,模拟整套环境,从而能快速进入核心业务的开发测试状态中. 系统环境安装配置 虚拟机V ...

  6. BBS论坛 注册功能

    三.注册功能 # views.py文件 def register(request): back_dic = {'code': 100, 'msg': ''} form_obj = myforms.My ...

  7. elast数据存放

    这几天一直在索引数据,突然发现服务器状态变红色了,去官网看了下 集群状态如果是红色的话表示有数据已经丢失了!这下头大了才索引了7G数据,后面还有10多个G, 我在liunx下看了下磁盘空间 发现运行e ...

  8. Leetcode - K Sum

    List<List<Integer>> kSum_Trim(int[] a, int target, int k) { List<List<Integer>& ...

  9. CIE XYZ

    了解CIE XYZ的来龙去脉,看维基之前,先读这两篇文章: https://medium.com/hipster-color-science/a-beginners-guide-to-colorime ...

  10. HTML --- 简单的标签

    HTML --- 简单的标签 html概述和基本结构 html概述 HTML是 HyperText Mark-up Language 的首字母简写,意思是超文本标记语言,超文本指的是超链接,标记指的是 ...