1. 程式人生 > >AnsiString和String的區別、使用

AnsiString和String的區別、使用

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;

相關推薦

AnsiStringString區別使用

C/C++語言在CB中的一些特定用法   2)AnsiString是從Delphi中引進來的嗎?   答:CB的核心元件VCL是用Object Pascal語言寫出的,所以CB的VCL元件的屬性有很多都是使用long string,例如:Text、 Name、Captio

JavaScript基礎拓展總結深入(== ===的區別undefinednull的區別,分號問題)

JavaScript中的== 和=== 的區別 == 表示值的比較,=== 表示物件型別的比較。 注意 1、對於string,number等基礎型別,== 和 ===是有區別的。 a)不同型別間比較,==之比較轉化成同一型別的值,如果值相等,結果就等, ===

Oracle-09-刪除表(droptruncate區別閃回刪除等)

一、如果既要刪除表中的資料也要刪除表的結構,請使用droptable語句,其格式如下: drop table 表名 drop table語句(是DDL語句)有如下特徵: (1)它刪除表中所有的資料

字元編碼:ANSIASCII區別UnicodeUTF-8區別

ANSI和ASCII區別 ANSI碼(American National Standards Institute) 美國國家標準學會的標準碼 ASCII碼(America Standard Code

String...String[]區別

public static String get(String url, String... params) { } 型別後面三個點(String…),是從Java 5開始,Java語言對方法引數支援一種新寫法,叫可變長度引數列表,其語法就是型別後跟

Volatilesynchronized區別死鎖概念

1、Volatile變數和同步機制synchronized 、Lock區別 1、volatile變數是一種稍弱的同步機制在訪問volatile變數時不會執行加鎖操作,因此也就不會使執行執行緒阻塞,因此volatile變數是一種比synchronized關鍵字更輕量級的同步機

Sftpftp 區別工作原理等(彙總ing)

FTP協議安全分析 前 言 FTP(File Transfer Protocol,檔案傳輸協議)是網際網路上常用的協議之一,人們用FTP實現互連網上的檔案傳輸。由於TCP/IP協議族在設計時是處在一個相互信任的 平臺上的,使得在網路安全越來越被重視的今天,TCP/IP協議族的安全性也成為了安全界研究的

字元編碼ANSIASCII區別UnicodeUTF-8區別

今天看了一個說法,說是入坑windows程式開發,必先掌握文字的編碼和字符集知識。本部落格就整理下資訊儲存和字元編碼的相關知識。 一.位: 計算機儲存資訊的最小單位,稱之為位(bit),音譯位元,二進位制的一個“0”或一個“1”叫一位。 二.位元組 位元

SQL中JOINUNION區別用法及示例

1.JOIN和UNION區別join 是兩張表做交連后里麵條件相同的部分記錄產生一個記錄集,union是產生的兩個記錄集(欄位要一樣的)並在一起,成為一個新的記錄集 。JOIN用於按照ON條件聯接兩個表,主要有四種:INNER JOIN:內部聯接兩個表中的記錄,僅當至少有一個同屬於兩表的行符合聯接條件時,內

org.w3c.dom.Documentorg.dom4j.Document轉化w3cString轉化SAXReader等

<一>把String轉化成org.dom4j.Document: ①Document document = DocumentHelper.parseText(messageXml); ②StringReader sr = new StringRe

區塊鏈筆記(三):stateRootnonce值的作用Hyperledger FabricComposer區別聯盟鏈中心賬本區別

問題1:為什麼要有stateRoot? 方便節點間狀態的互相驗證,保證交易的每個區塊的一致性。 問題2:nonce值有什麼用? 1.區塊中的nonce值:和mixhash值一起用於挖礦; 2.交易中的nonce值:用來區別同一使用者發出的不同交易的標記。①確認交

字符編碼ANSIASCII區別UnicodeUTF-8區別

span 編輯 日本 發展 不同語言 保存 code 導致 style ANSI碼ANSI編碼是一種對ASCII碼的拓展:ANSI編碼用0x00~0x7f (即十進制下的0到127)範圍的1 個字節來表示 1 個英文字符,超出一個字節的 0x80~0xFFFF 範圍來表示其

StringBuffer類的使用詳解底層實現StringStringBuffer的區別StringBuffer的常用方法

Java StringBuffer類的使用和詳解底層實現、String和StringBuffer的區別、StringBuffer的常用方法 1.java StringBuffer類 2. StringBuffer類的構造器(構造方法) 3.

StringBuilderStringBufferString三者的聯絡區別

1. String 類    String的值是不可變的,這就導致每次對String的操作都會生成新的String物件,不僅效率低下,而且大量浪費有限的記憶體空間。    String a = "a"; //假設a指向地址0x0001    a = "b";//重新賦值後a

toString()new String()(String) String.ValueOf()的區別

先來看段程式碼: String str="hello"; String base64Encoded=Hex.encodeToString(str.getBytes()); String str2=new String(Hex.decode(base64En

『C++ Primer學習筆記』Chapter 3 string物件vector物件以及陣列的配套型別,C風格字串問題處理區別

string物件、vector物件以及陣列(指標)配套的型別 無論是string物件還是vector物件,它們都有一個size()的成員函式,因此就可能會有這樣的一個疑問:成員函式size()返回的到底是什麼型別?之所以可能會有而不是一定會有是因為,當我們使用

JS中constvarlet區別

方法 pre 命令 con 使用 它的 comm 作用 影響 在JavaScript中有三種聲明變量的方式:var、let、const。 1.const 聲明創建一個只讀的常量。這不意味著常量指向的值不可變,而是變量標識符的值只能賦值一次,必須初始化。 const b

內存溢出內存泄漏的區別產生原因以及解決方案 轉

服務 har 操作 ger 遞歸調用 問題 let share 查錯 內存溢出 out of memory,是指程序在申請內存時,沒有足夠的內存空間供其使用,出現out of memory;比如申請了一個integer,但給它存了long才能存下的數,那就是內存溢出。 內

Delphi 的字符及字符串 stringAnsiStringWideStringString[n]ShortString

ssa 寬字符串 set setlength 內存 如果 指定大小 spa 字符 //最常用的 string var str: string; {定義} begin str := ‘萬一‘; {賦值} ShowMessage(IntToStr(Length(

轉載:string.IsNullOrEmptystring.IsNullOrWhiteSpace方法的區別

char ace length string pty div isn 如果 使用 string.IsNullOrEmpty():判斷字符串是否為null或者為string.Empty,如果是"\t"這樣的字符就返回false,為了達到判斷過濾這些功能,就要使用Trim()和