zoukankan      html  css  js  c++  java
  • AnsiString和String的区别、使用

    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;

  • 相关阅读:
    c语言中的增量与减量········不要太聪明
    存储器··············RAM,SRAM,EEPROM 等等
    对于 sizeof(char)的一些零碎······
    C语言中float,double等类型,在内存中的结构
    同步异步存储器
    Linux的帧缓冲设备(Framebuffer)简介
    嵌入式 c 中结构体经常碰到_I、 __O 、__IO是什么意思?
    新型的按键扫描程序
    数据结构
    jQuery(八)选择器与选择方法
  • 原文地址:https://www.cnblogs.com/JeffreyCheung/p/5781031.html
Copyright © 2011-2022 走看看