16.C/C++语言在CB中的一些特定用法
  2)AnsiString是从Delphi中引进来的吗?
  答:CB的核心组件VCL是用Object Pascal语言写出的,所以CB的VCL组件的属性有很多都是使用long string,例如:Text、 Name、Caption等属性都是使用Object Pascal的long string。基于此关系,CB只好建立了和Object Pascal的long string相应的类别,我们将它称为AnsiString。
  3)AnsiString与String有什么区别?
  答: C++ Builder在Sysdefs.h头文件中有这样的定义:
  typedef  AnsiString String;
  从这一点在看他二者是完全一样的,只是书写起来后者更方便一些,前者是意图更明了一些。
  4)能介绍一下AnsiString类的一些常见函数及其用法吗?
  答:当然可以了,下面就常见函数做一下简单介绍:
    成员函数                                                     语法                                                        功能
       c_str                                   char *_fastcall c_str() const                             返回字符串数据的指针
      Delete                           void _fastcall Delete(int index,int count)              由index处开始删除count个字符
     Insert                   void _fastcall Insert(const AnsiString& str,int index)    由index处开始插入字符str到原字符串中
     IsEmpty                                   bool _fastcall IsEmpty() const                    返回字符串是否为空,true表示空字符串
       Length                                      int _fastcall Length() const                                      返回字符串长度
     LowerCase                           AnsiString _fastcall LowerCase() const                    将字符串中的大写字母改写成小写
      UpperCase                          AnsiString _fastcall UpperCase() const                     将字符串中的小写字母改写成大写
       Pos                                int _fastcall Pos(cont AnsiString& substr)const;     找出子字符串在原字符串中由第几个位置开始
     SubString                AnsiString _fastcall SubString(int index,int count)const    返回由index处向后取count个字符
      ToDouble                                       double _fastcall ToDouble() const                          将字符转成双精度数值
           ToInt                                          int _fastcall ToInt() const                                           将字符转成整形
         IntToStr                             AnsiString _fastcall IntToStr(int Value)                                将整形转成字符串
         Trim                        AnstString _fastcall Trim() const返回一个新的字符串,它会将原字符串前后空白或控制字符清除后再返回
    WideChar    wchar_t fastcall WideChar(wchart* dest,int destsize)const 转换AnsiString到一个宽字符数组(COM中常用)
 5)AnstString成员函数与传统字符串函数有何不同之处?
  答:我们可以通过二者的一个对照表来查看他们的之间的不同之处:    AnsiString成员函数                                         功能                                                       传统字符串函数

=                                                 字符串拷贝                                                         strcpy
            +=                                                 字符串合并                                                         strcat
             +                                                  字符串连接                                                            无
==,!+=,<,<=,>,>=                                     字符串比较                                                       strcmp
         c_str()                                              相互转换                                               无,但可以利用指针实现
         Delete                                             删除子字符串                                                          无
        Insert                                               插入子字符串                                                          无
        Length                                             求字符串长度                                                        strlen
      LowerCase                                        字母转成小写                                                        strlwr
         Pos                                                 找出子字符串                                                        strstr
     SetLength                                          设置字符串长度                                                        无
        ToInt                                                  转成整形                                                              无
      ToDouble                                            转成双精度                                                         sprintf
      UpperCase                                         字母转成大写                                                      strupr
   6)如何实现传统字符串与AnsiString字符串的相互转换?
  答:传统的C语言是使用字符来组成字符串的(字符串末尾必须有’/0’做为结束标志),其格式和AnsiString并不相同。由于在CB中我大量使用AnsiString格式,所以有时也难免要进行一些转换,我们可以通过下列三种方法来实现:
  方法1:AnsiString字符串转换成字符串数组:
  先利用AnsiString类别中的c_str()方法转换成传统字符串数组,再用strcpy拷贝,将它拷贝到字符数组中去:
  char s1[20];
  strcpy(s1,Edit1->Text.c_str());
  方法2:AnsiString转换成传统字符串可以利用字符指针来实现:
  可以通过字符指针来实现:
  char *s;
  s=Edit->Text.c_str();
  方法3:利用字符指针实现传统字符串转换成AnsiString:
  char *s=”试一试,看看能不能成功!”;
  Edit->Text=s;

AnsiString和String的区别、使用的更多相关文章

  1. BCB:AnsiString和String的区别

    AnsiString和String的区别.使用 本文转自:http://www.bianceng.cn/c/index.htm 16.C/C++语言在CB中的一些特定用法 2)AnsiString是从 ...

  2. python中string.casefold和string.lower区别

    string.casefold和string.lower 区别 python 3.3 引入了string.casefold 方法,其效果和 string.lower 非常类似,都可以把字符串变成小写, ...

  3. C字符串和C++中string的区别 &&&&C++中int型与string型互相转换

    在C++中则把字符串封装成了一种数据类型string,可以直接声明变量并进行赋值等字符串操作.以下是C字符串和C++中string的区别:   C字符串 string对象(C++) 所需的头文件名称 ...

  4. java基础知识回顾之---java StringBuffer,Stringbuilder与String的区别

    public class StringBuilderTest { /** * StringBuffer和Stringbuilder :使用与内容可以被修改的字符串 * 与String的区别:Strin ...

  5. C字符串和C++中string的区别 &amp;&amp;&amp;&amp;C++中int型与string型互相转换

    在C++中则把字符串封装成了一种数据类型string,可以直接声明变量并进行赋值等字符串操作.以下是C字符串和C++中string的区别:   C字符串 string对象(C++) 所需的头文件名称 ...

  6. JAVA中String = null 与 String = "" 的区别

    JAVA中String = null 与 String = ""的区别 笔者今天在Debug的时候发现的NPE(NullPointerException),辛辛苦苦地调试了半天,终 ...

  7. C# string 与 String的区别

    C# string 与 String的区别 The string type represents a string of Unicode characters. string is an alias ...

  8. python2/3中 将base64数据写成图片,并将图片数据转为16进制数据的方法、bytes/string的区别

    1.python2将base64数据写成图片,并将数据转为16进制字符串的方法 import binascii img = u'R0lGODlhagAeAIcAAAAAAAAARAAAiAAAzABE ...

  9. Java char 和 String 的区别: 字符编码及其存储

    一. ASCII码 上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定.这被称为ASCII码,一直沿用至今.一个字节(8bit)一共 可以用来表示256种不同的状态 ...

随机推荐

  1. MySQL索引1

    索引最大作用就是提高对表中数据的查询速度,就像书的目录那样重要,可以快速查到所需的知识. 上面是11万多条数据的表,使用语句查询,如: 耗时:0.108s 再比如: 用时:0.004s 接下来创建索引 ...

  2. 写给后端的前端笔记:定位(position)

    写给后端的前端笔记:定位(position) 既然都写了一篇浮动布局,干脆把定位(position)也写了,这样后端基本上能学会css布局了. 类别 我们所说的定位position主要有三类:固定定位 ...

  3. 转载 java基础题(面试必知)

    1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包 ...

  4. Tomcat利用Redis存储Session

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt269 如果英文不错的看,建议直接看官网吧,官网写的挺清楚.下面的内容是转载的 ...

  5. kill -3 导出 thread dump

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt361 有些Java应用服务器是在控制台上运行,如Weblogic,为了方便获 ...

  6. bgp选路原则【第二部】

    面向逻辑谈bgp选路原则(第二部) 终于到了BGP终极解析的第二部曲--BGP选路原则.与题目相呼应,我不会直接介绍选路原则的规则,而是从时间逻辑和空间逻辑上将所有的选路原则分层分类.因为只有从这种角 ...

  7. 结对作业1----基于GUI的四则运算生成器

    组员:201421123015 陈麟凤 201421123019 张志杰 201421123020 黄海鸿 coding 地址:代码点这里 需求分析: 1.除了整数的四则运算还要支持分数的四则运算: ...

  8. 201521123099 《Java程序设计》第2周学习总结

    1. 本周学习总结 1.Java对我来说难度还是很大.需要花更多时间去学习. 2. 书面作业 1.使用Eclipse关联jdk源代码,并查看String对象的源代码(截图)?分析String使用什么来 ...

  9. 201521123029《Java程序设计》第14周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 答:1.数据库定义:为了实现一定目的按某种规则组织起来的"数据"的"集合" ...

  10. Junit4学习(三)Junit运行流程

    一,验证Junit测试方法的流程 1,在test/com.duo.util右键,新建测试类 2,生成后的代码: package com.duo.util; import static org.juni ...