VC入門寶典三(String) (轉)
CString:namespace prefix = o ns = "urn:schemas--com::office" />
/develop/author/netauthor/he_zhidan/">何志丹
主要內容:
1,主要的實現
2,常用函式
3.CString與char []的相互轉換
4,將NULL位元組放入CString中
vc中最主要函式不易理解。
CString::CString(char *p)
{
int n=strlen(p);
m_data = new char[n+1];
strcpy(m_data,p);
}
CString::CString(CString &other)
{
int n=strlen(other.m_data);
m_data = new char[n+1];
strcpy(m_data,other.m_data);
}
CString& CString::operator = (CString& other)
{
delete[] m_data;
int n=strlen(other.m_data);
m_data = new char[n+1];
strcpy(m_data,other.m_data);
return *this;
}
String::~String()
{
delete [] m_data;
}
Collate,Compare 與一個字元長指標所指的字串進行比較,與strcmp相同,它們的區別是,分別_tcll,_tcsicmp。
Delete
int Delete( int nIndex, int nCount = 1 )
返回值是被刪除前的字串的長度,nIndex是第一個被刪除的字元,nCount是一次刪除幾個字元。根據我實驗得出的結果:當nCount>字串的長度時會出錯,當nCount過大,沒有足夠的字元刪除時,此函式不。
FindOneOf
int FindOneOf( LPCTSTR lpszCharSet ) const;
此函式的功能是在查詢lpszCharSet中的任意一個字元,查到一個就把位置返回,沒有查到返回0。如:
CString str = "0123456789";
int x = str.FindOneOf("31");
x的值是1。
Find
int Find( TCHAR ch ) const;
int Find( LPCTSTR lpszSub ) const;
int Find( TCHAR ch, int nStart ) const;
int Find( LPCTSTR pstr, int nStart ) const;
返回值查詢到的序號,ch待搜尋的字元,lpszSub待搜尋的字元子串,nStart 從那裡開始搜尋。如:
CString str = "0123456789";
int x = str.Find("34",4);
返回的值是-1.
GetAt
TCHAR GetAt( int nIndex ) const;
返回標號為nIndex的字元,你可以把字串理解為一個陣列,GetAt類似於[].注意nIndex的範圍,如果不合適會有錯誤。
Insert
int Insert( int nIndex, TCHAR ch )
int Insert( int nIndex, LPCTSTR pstr )
返回修改後的長度,nIndex字元(或字串)插入後的標號。
Left
CString Left( int nCount ) const;
返回的字串的前nCount個字元。
Right與Left類似
MakeLower ,MakeUpper改變字元的大小寫
MakeReverse字元倒置,如:
CString str = "X0123456789";
str.MakeReverse();
str變為"9876543210X"
+=
const CString& operator +=( const CString& string );
const CString& operator +=( TCHAR ch );
const CString& operator +=( LPCTSTR lpsz );
將引數合併到自己身上。
如: CString str = "0123456789";
str+="ha";
str為"0123456789ha";
str[]
TCHAR operator []( int nIndex ) const;
象處理字元陣列一樣處理字串。
注意是隻讀的。
CString str = "0123456789";
str[0]='x';
是錯誤的。
TrimLeft,TrimRight
void TrimLeft( );
void CString::TrimLeft( TCHAR chTarget );
void CString::TrimLeft( LPCTSTR lpszTargets );
void TrimRight( );
void CString::TrimRight( TCHAR chTarget );
void CString::TrimRight( LPCTSTR lpszTargets );
CString str = "nt a";
str.TrimLeft();
str為“a”;
如果沒有引數,從左刪除字元(nt空格等),至到遇到一個非此類字元.
當然你也可以指定刪除那些字元.
如果指定的引數是字串,那麼遇上其中的一個字元就刪除.
CString str = "abbcaabcadb ";
str.TrimLeft("ab");
結果"cadbabcadb "
int CString::Remove( TCHAR ch );
ch刪除的字元.
返回刪除字元的個數,有多個時都會刪除.
CString 與char []之間的轉換.
char str[100] = ”str”;
CString sstr = “sstr”;
str.Format(“%s”,str);
str = LPCTSTR sstr;
strcpy(str,(LPCTSTR)sstr);
如果是賦值,則要:
CString s(_T("This is a test "));
LPTSTR p = s.GetBuffer();
// 在這裡新增使用p的程式碼
if(p != NULL) *p = _T('');
s.ReleaseBuffer();
// 使用完後及時釋放,以便能使用其它的CString成員函式
str的值變了.
將NULL位元組放入CString中
1,CString str("abc""def", 7);
str +="g";
int nLength = str.GetLength();
nLength為8.
2,CString str("My name is hedan!");
str.SetAt(5, 0);
int nLength = str.GetLength();
注意:不是所有的CString成員函式都可以,在使用時一定要小心。
例項:動態資料來源
CString strDsn,strDBQ;
strDsn = "DSN=test";
strDBQ.Format("DBQ=%s",strMDBName);
CString strConnect = strDsn + " " + strDBQ ;
strConnect.SetAt(strDsn.GetLength(),'');
ConfigDataSource(NULL, ODBC_ADD_SYS_DSN, "Microsoft Access (*.mdb)", strConnect);
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993537/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- vc入門寶典(十) (轉)
- vc入門寶典(九) (轉)
- vc入門寶典八(基本操作) (轉)
- vc入門寶典(一)(選單) (轉)
- vc入門寶典七(工具欄) (轉)
- vc入門寶典六(多執行緒) (轉)執行緒
- [轉]BI入門經典
- BI入門經典 (轉)
- Tungsten Fabric入門寶典丨編排器整合
- 【官方重磅釋出】Google AdMob新手入門寶典Go
- Tungsten Fabric入門寶典丨TF元件的七種“武器”元件
- VC常見入門問題總結(二) (轉)
- VC常見入門問題總結(一) (轉)
- J2SE入門(三) String深度解析
- Tungsten Fabric入門寶典丨多編排器用法及配置
- Tungsten Fabric入門寶典丨首次啟動和執行指南
- Struts快速入門(三) (轉)
- Tungsten Fabric入門寶典丨關於安裝的那些事(下)
- Tungsten Fabric入門寶典丨關於叢集更新的那些事
- Tungsten Fabric入門寶典丨8個典型故障及排查Tips
- Tungsten Fabric入門寶典丨關於服務鏈、BGPaaS及其它
- Kotlin 語言入門寶典 | Android 開發者 FAQ Vol.5KotlinAndroid
- 《Flutter 入門經典》之“Flutter 入門 ”Flutter
- Webpack經典入門Web
- Tungsten Fabric入門寶典丨開始第二天的工作
- 大資料架構師從入門到精通 學習必看寶典大資料架構
- 資料治理之後設資料管理的利器——Atlas入門寶典
- Spark入門(三)--Spark經典的單詞統計Spark
- VC中文FAQ寶庫之5:怎樣載入其他的應用程式 (轉)
- windows網路程式設計經典入門 (轉)Windows程式設計
- 面試寶典面試
- Linux下Oracle安裝寶典 (轉)LinuxOracle
- Linux下Oracle安裝寶典(轉)LinuxOracle
- Tungsten Fabric入門寶典丨說說L3VPN及EVPN整合
- Tungsten Fabric入門寶典丨關於多叢集和多資料中心
- 一站式後設資料治理平臺——Datahub入門寶典
- UNIX 系統操作入門(三)(轉)
- VC++ MFC入門簡明教程,我當時就是看了它一天入門的 (轉)C++