全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1571
推到 Plurk!
推到 Facebook!

請問 AnsiString 和 Cha r有何不同呢?

答題得分者是:taishyang
wena
一般會員


發表:26
回覆:37
積分:12
註冊:2005-07-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-21 10:55:51 IP:163.17.xxx.xxx 未訂閱
請問: 我寫的程式中有一行宣告 AnsiString temp = RichEdit1->Lines->Strings[row];    到下面時又寫 temp = temp.SubSring(1,col-1) + "%" + MaskEdit1->Text + temp.SubString(no,temp.Length()-(no-1));    在run的時候它告訴我一個Error 就是'SubString' is not a member of 'AnsiString' 後來我在另外的討論串裡發現某一位會員說 strin是char陣列,而不是AnsiString類別,所以沒有Substring的方法! 那 AnsiString 和 Cha r有何不同呢? 我該如何解決我的問題呢? 謝謝!
powmien
初階會員


發表:27
回覆:80
積分:41
註冊:2004-10-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-21 11:23:04 IP:60.248.xxx.xxx 未訂閱
你只要把char* 陣列轉成AnsiString 就可以了。 AnsiString 在傳統C語言中,字串的處理都是使用字元陣列,但那個結束字元(null terminated char)卻一直都令人很頭痛。試想,如果在C語言中的字串忘了加結束字元,會有什麼後果?而且在傳統C語言中所提供的字串處理函式,似乎也不是那麼的方便使用。 為此,BCB有一個很好的解決方案,就是使用AnsiString這個類別。AnsiString的原型宣告是放在dstring.h這個標頭檔中,我們可以在..\Include\VCL\這個目錄找到dstring.h。 AnsiString 建構函數: __fastcall AnsiString(); __fastcall AnsiString(const char* src); __fastcall AnsiString(const AnsiString& src); __fastcall AnsiString(const char* src, unsigned char len); __fastcall AnsiString(const wchar_t* src); __fastcall AnsiString(int src); __fastcall AnsiString(double src); AnsiString 的其它成員函數: char* __fastcall c_str() const; int __fastcall Length() const; friend AsiString __fastcall operator (const char* lhs, const AnsiString& rhs); int __fastcall Pos(const AnsiString& subStr) const; void __fastcall SetLength(int newLength); static AnsiString __fastcall StringOfChar(char ch, int count); AnsiString __fastcall SubString(int index, int count) const; AnsiString __fastcall UpperCase() const; AnsiString __fastcall LowerCase() const; bool __fastcall IsEmpty() const; int __fastcall ToInt() const;
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-21 11:32:30 IP:210.68.xxx.xxx 未訂閱
引言: temp = temp.SubSring(1,col-1) "%" MaskEdit1->Text temp.SubString(no,temp.Length()-(no-1)); 在run的時候它告訴我一個Error 就是'SubString' is not a member of 'AnsiString'
不知是不是筆誤
temp = temp.SubSring(1,col-1)   "%"   MaskEdit1->Text   temp.SubString(no,temp.Length()-(no-1));    temp = temp.SubString(1,col-1)   "%"   MaskEdit1->Text   temp.SubString(no,temp.Length()-(no-1));
wena
一般會員


發表:26
回覆:37
積分:12
註冊:2005-07-20

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-21 12:20:36 IP:163.17.xxx.xxx 未訂閱
嗯… 很誇張,真的是筆誤 謝謝啦
系統時間:2024-06-20 3:35:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!