BCB中AnsiString類方法總結

2021-09-30 02:03:01 字數 2305 閱讀 1352

ansistring類是bcb中最常見類之一,了解它對以後深入學習bcb大有幫助原來關於這個類的提出的問題有很多,現總結如下。加上我個人的經驗,湊出了一篇關於這個類的最常用方法屬性的介紹,希望能對各位有所幫助

常用方法:

1. char* c_str()

返回乙個字串指標,他指向的內容和ansistring中包含的字串的內容一致(bcb幫助中就是是這樣解釋這個方法的,關於它更詳細的討論見後文)

example:

ansistring str = "hello world!";

messagebox(null,str.c_str(),"",mb_ok);   //顯示乙個訊息框

2.ansicompare(ansistring& rhs)

operator == (ansistring& rhs)

都用來比較兩個ansistring的內容是否相同,兩者的區別在於當內容相等的時候前者返回0,而後者返回true

3.int length()

很簡單,返回字串長度

4.char & operator (const int idx)

返回字串中第idx個字元

注意:這個地方不知道bcb怎麼想的,可能是為了照顧delphi程式設計師的習慣吧卻給c程式設計師造成了一點小小的麻煩:和c中陣列的用法不相容,也就是說當idx為0的時候,bcb會丟擲乙個異常,而不是返回第乙個字元!要得到第乙個字元,idx應該為1

example:

ansistring str = "hello world!";

char byte = str[2];

//byte等於'e' 而 不等於'l'

ps.下面的介紹,只要是關於第x個字元的,都和這裡一樣,不再重複

5.ansistring substring(int index, int count)

返回從第index個字元開始,長度為count子串

example:

ansistring str = "hello world!";

messagebox(null,str.substring(7,5).c_str(),"",mb_ok);  //顯示內容為 world

6.int pos(ansistring& substr)

查詢內容為substr的字串,如果有,返回字串的第乙個字元位置 如果沒有,返回0

7.int toint()

int tointdef(int defaultvalue)

返回當前字串轉化為整數的結果,不同點在於,當不能轉化時,前者丟擲乙個異常,而後者返回defaultvalue,嘿嘿,偶喜歡後者

8.ansistring lowercase()

ansistring uppercase()

返回當前字串轉化為小寫/大寫的結果

注意,它們只是返回乙個新的ansistring,原來字串的內容沒有變化

9.ansistring& sprintf(char *, ...)

利用sprintf強大功能格式化當前字串,詳細用法請參考sprintf或者printf

其它一些操作符:+  +=  >=  >  <  <=  !=

這些不用解釋了吧……

深入**:

1.關於c_str()的返回值問題.

能否用這個返回值訪問/修改字串中的內容?

example:

ansistring a = "i want to modify this using pointer";

char *p = a.c_str();

p[0] = 'i';

........           //指標操作

showmessage(a);

雖然bcb的幫助表明 c_str()這個函式的返回值(char*)只在它所在表示式內有效,

但是以上**有時候卻可以完成預期的目的

個人極力反對用這種方法來改變字串的內容,因為ansistring自帶的方法已經能夠十

分有效的完成指標操作

比如上面的例子中 p[0] 可以用 a[1] 來代替

合併字串可以用 + 或者 += 來替代

還有查詢,插入,刪除等,都可以在幫助中找到ansistring類中對應的方法來實現

2.unicode的支援

由於ansistring非模板類

除了widechar方法外,ansistring好像不支援unicode

但是不知道為什麼裡面會有bytetype這個方法

3.很有意思的方法

unique()

lastdelimiter()

不常用,但是我覺得是十分有意思的函式

怎麼用,可以參考幫助

BCB中AnsiString類方法小結

ansistring類是bcb中最常見類之一,了解它對以後深入學習bcb大有幫助。介紹ansistring類之前,先要介紹一些背景知識。vcl visual component library 視覺化元件庫 大量利用pascal長字串資料型別,幾乎所有基於文字的vcl屬性都採用pascal長字串。例...

BCB中AnsiSting類方法總結

bcb中ansisting類方法總結 ansistring類是bcb中最常見類之一,了解它對以後深入學習bcb大有幫助原來關於這個類的提出的問題有很多,現總結如下。加上我個人的經驗,湊出了一篇關於這個類的最常用方法屬性的介紹,希望能對各位有所幫助 常用方法 1.char c str 返回乙個字串指標...

BCB中接收郵件的例子

來自csdn的 onlyux 從name1 163.com裡取出郵件 label1 caption 正在連線伺服器.if nmpop31 connected nmpop31 disconnect nmpop31 attachfilepath nmpop31 deleteonread false nm...