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. 新建的maven项目里没有src

    百度上搜到一个网友的一句话:没筷子你就不吃饭了是吧 若有所思 自己新建一个src文件 然后, 由于已经转换,因此上图没有sources选项 然后就可以在文件中随意编写文件 如果想添加package,直 ...

  2. 漏洞:会话固定攻击(session fixation attack)

    什么是会话固定攻击? 会话固定攻击(session fixation attack)是利用应用系统在服务器的会话ID固定不变机制,借助他人用相同的会话ID获取认证和授权,然后利用该会话ID劫持他人的会 ...

  3. drools决策表的使用

    决策表我们在drools规则引擎初探里做了简单介绍,这里主要是介绍如何通过java代码来把这个excel文件和drools关联起来,如何使其达到我们想要的效果. 这里假设我们在resources目录下 ...

  4. --master-data 的作用

    Use this option to dump a master replication server to produce a dump file that can be used to set u ...

  5. js隐式类型转换,预编译、递归、作用域,作用域链、闭包、立即执行函数、继承圣杯模式

    隐式类型转换 调用Number()当有运算符(加减乘除,求余)时,会调用Number()转为数字再运算,除了 加 当 有字符串时就变身成拼接Boolean();String(); typeof()st ...

  6. BCZM : 1.8

    问题:      所有的员工均在1楼进电梯的时候,选择所要到达的楼层.然后计算出停靠的楼层i,当到达楼层i的时候,电梯停止.所有人走出电梯,步行到所在的楼层中.求所有人爬的楼层数目和的最小值. 解法一 ...

  7. Windows 10 连接服务器

    { windows + r    input mstsc } { //mstsc D:\TOOL\Servers.rdp /v 127.0.0.1:9998 }

  8. MDK 虚拟串口 *** error 30: undefined name of virtual register

    概念说明 查看已有的虚拟寄存器 输入指令: dir vtreg 可以看到没有要配置的虚拟寄存器SxIN和SxOUT,通过查询手册可以看到所有的虚拟寄存器类型: 说明不支持.

  9. scrapy - 给scrapy 的spider 传值

    scrapy - 给scrapy 的spider 传值 方法一: 在命令行用crawl控制spider爬取的时候,加上-a选项,例如: scrapy crawl myspider -a categor ...

  10. Postman提取返回值

    json响应结果 Postman是做接口测试的,但是很多接口并不是直接就能测试的,需要一些预处理.比如登录的时候,需要传递一个token.如果是网页测试,一般打开登录页面的时候就会自动生成一个toke ...