AnsiStrLastChar - C++ Builder

C++ Builder 參考手冊(cè) ? System::Sysutils ? AnsiStrLastChar


返回指向字符串當(dāng)中最后一個(gè)字符的指針

頭文件:#include <System.SysUtils.hpp>
命名空間:System::Sysutils
函數(shù)原型:

System::WideChar * __fastcall AnsiStrLastChar(System::WideChar * P);

參數(shù):

  • P:字符串

返回值:

  • 如果 P 為 NULL 或空字符串 L"",將返回不正確的結(jié)果,此時(shí)無法根據(jù)返回值判斷函數(shù)的執(zhí)行情況,所以在使用這個(gè)函數(shù)之前要確定字符串必須非空;
  • 如果 P 不是空字符串 (至少有1個(gè)字符),返回指向 S 里面最后一個(gè)字符的指針;
    • 由 2 個(gè) char16_t 組成的代理對(duì) (4 個(gè)字節(jié)的字符) 可以正確的返回,請(qǐng)參考 UnicodeString 和 UTF16 編碼,這時(shí)候返回的就是倒數(shù)第 2 個(gè) char16_t 而不是最后一個(gè) char16_t;
    • 返回的指針直接指向 P 占用的內(nèi)存,如果 P 指向臨時(shí)內(nèi)存,返回的指針指向的內(nèi)存被釋放,可能會(huì)被其他程序占用而無法得到正確的值;
  • 另外一個(gè)類似的函數(shù) AnsiLastChar 空字符串返回 NULL,非空返回最后一個(gè)字符;
  • 這個(gè)函數(shù)的參數(shù)都是 System::WideChar 類型的了,雖然函數(shù)名以 Ansi 開頭,實(shí)際上是 UNICODE (UTF-16) 編碼。參數(shù)為 char 或 AnsiString 類型的函數(shù)都移到 System.AnsiStrings.hpp 這個(gè)頭文件里面了,參數(shù)為 char 或 AnsiString 類型的函數(shù)都看作過時(shí)的函數(shù),不建議使用了;
  • 問題:使用這個(gè)函數(shù) Borland 編譯器會(huì)出現(xiàn)使用過時(shí)了的函數(shù)的警告 (屬于誤報(bào)),即使參數(shù)是 System::WideChar * (或 wchar_t *) 類型,而 clang 32 和 clang 64 編譯器在使用 System::WideChar * (或 wchar_t *) 類型的參數(shù)不會(huì)有警告,如果必須使用 Borland 編譯器并且很在意這個(gè)警告,可以使用 AnsiLastChar 代替。

相關(guān):

  • System::Sysutils::AnsiLastChar
  • System::Sysutils::AnsiStrLastChar
  • System::Sysutils::AnsiPos
  • System::Sysutils::AnsiStrPos
  • System::Sysutils::AnsiStrScan
  • System::Sysutils::AnsiStrRScan
  • System::Sysutils::CharToElementIndex
  • System::Sysutils::CharToElementLen
  • System::Sysutils::ElementToCharIndex
  • System::Sysutils::ElementToCharLen
  • System::Sysutils
  • <cstdlib>

C++ Builder 參考手冊(cè) ? System::Sysutils ? AnsiStrLastChar

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容