亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tstring.h

?? TFixedAlloc類是一個非常不錯的使用與Linux和windows跨平臺的內存分配工具
?? H
字號:
#ifndef __TString_H__
#define __TString_H__

#include "TypeDef.h"
#include <stdarg.h>
#include <string.h>
#include <assert.h>
#include <ctype.h>
	



	
/////////////////////////////////////////////////////////////////////////////
// Strings

extern char TafxChNil;

struct TStringData
{
	long nRefs;             // reference count
	int nDataLength;        // length of data (including terminator)
	int nAllocLength;       // length of allocation
	// TCHAR data[nAllocLength]

	char* data()           // char* to managed data
		{ return (char*)(this+1); }
};

class TString
{
public:
// Constructors

	// constructs empty TString
	TString();
	// copy constructor
	TString( const TString& stringSrc );
	// from a single character
	TString( char ch, int nRepeat = 1 );
	// from an ANSI string (converts to TCHAR)
	TString( TLPCSTR lpsz);
	// from a UNICODE string (converts to TCHAR)
	////TString(LPCWSTR lpsz);
	// subset of characters from an ANSI string (converts to TCHAR)
	TString( TLPCSTR lpch, int nLength );
	// subset of characters from a UNICODE string (converts to TCHAR)
	////CString(LPCWSTR lpch, int nLength);
	// from unsigned characters
	TString( const unsigned char * psz );
	
// Attributes & Operations

	// get data length
	int GetLength() const;
	// TRUE if zero length
	TBOOL IsEmpty() const;
	// clear contents to empty
	void Empty();

	// return single character at zero-based index
	char GetAt( int nIndex ) const;
	// return single character at zero-based index
	char operator[]( int nIndex ) const;
	// set a single character at zero-based index
	void SetAt(int nIndex, char ch);
	// return pointer to const string
	operator TLPCSTR() const;

	// overloaded assignment

	// ref-counted copy from another CString
	const TString& operator=(const TString& stringSrc);
	// set string content to single character
	const TString& operator=(char ch);

	// copy string content from ANSI string (converts to TCHAR)
	const TString& operator=(TLPCSTR lpsz);
	
	// copy string content from unsigned chars
	const TString& operator=(const unsigned char* psz);

	// string concatenation

	// concatenate from another CString
	const TString& operator+=(const TString& string);

	// concatenate a single character
	const TString& operator+=(char ch);
	
	// concatenate a UNICODE character after converting it to TCHAR
	const TString& operator+=(TLPCTSTR lpsz);

	friend TString operator+(const TString& string1,
		const TString& string2);
	friend TString operator+(const TString& string, char ch);
	friend TString operator+(char ch, const TString& string);

	friend TString operator+(const TString& string, TLPCTSTR lpsz);
	friend TString operator+(TLPCTSTR lpsz, const TString& string);

	// string comparison

	// straight character comparison
	int Compare(TLPCTSTR lpsz) const;
	// compare ignoring case
	int CompareNoCase(TLPCTSTR lpsz) const;
	// NLS aware comparison, case sensitive
	int Collate(TLPCTSTR lpsz) const;
	// NLS aware comparison, case insensitive
	int CollateNoCase(TLPCTSTR lpsz) const;

	// simple sub-string extraction

	// return nCount characters starting at zero-based nFirst
	TString Mid(int nFirst, int nCount) const;
	// return all characters starting at zero-based nFirst
	TString Mid(int nFirst) const;
	// return first nCount characters in string
	TString Left(int nCount) const;
	// return nCount characters from end of string
	TString Right(int nCount) const;

	//  characters from beginning that are also in passed string
	TString SpanIncluding(TLPCTSTR lpszCharSet) const;
	// characters from beginning that are not also in passed string
	TString SpanExcluding(TLPCTSTR lpszCharSet) const;

	// upper/lower/reverse conversion

	// NLS aware conversion to uppercase
	void MakeUpper();
	// NLS aware conversion to lowercase
	void MakeLower();
	// reverse string right-to-left
	void MakeReverse();

	// trimming whitespace (either side)

	// remove whitespace starting from right edge
	void TrimRight();
	// remove whitespace starting from left side
	void TrimLeft();

	// trimming anything (either side)

	// remove continuous occurrences of chTarget starting from right
	void TrimRight(char chTarget);
	// remove continuous occcurrences of characters in passed string,
	// starting from right
	void TrimRight(TLPCTSTR lpszTargets);
	// remove continuous occurrences of chTarget starting from left
	void TrimLeft(char chTarget);
	// remove continuous occcurrences of characters in
	// passed string, starting from left
	void TrimLeft(TLPCTSTR lpszTargets);

	// advanced manipulation

	// replace occurrences of chOld with chNew
	int Replace(char chOld, char chNew);
	// replace occurrences of substring lpszOld with lpszNew;
	// empty lpszNew removes instances of lpszOld
	int Replace(TLPCTSTR lpszOld, TLPCTSTR lpszNew);
	// remove occurrences of chRemove
	int Remove(char chRemove);
	// insert character at zero-based index; concatenates
	// if index is past end of string
	int Insert(int nIndex, char ch);
	// insert substring at zero-based index; concatenates
	// if index is past end of string
	int Insert(int nIndex, TLPCTSTR pstr);
	// delete nCount characters starting at zero-based index
	int Delete(int nIndex, int nCount = 1);

	// searching

	// find character starting at left, -1 if not found
	int Find(char ch) const;
	// find character starting at right
	int ReverseFind(char ch) const;
	// find character starting at zero-based index and going right
	int Find(char ch, int nStart) const;
	// find first instance of any character in passed string
	int FindOneOf(TLPCTSTR lpszCharSet) const;
	// find first instance of substring
	int Find(TLPCTSTR lpszSub) const;
	// find first instance of substring starting at zero-based index
	int Find(TLPCTSTR lpszSub, int nStart) const;

	// simple formatting

	// printf-like formatting using passed string
	void Format(TLPCSTR lpszFormat, ...){};
	// printf-like formatting using referenced string resource
	void Format(TUINT nFormatID, ...){};
	// printf-like formatting using variable arguments parameter
	void FormatV(TLPCSTR lpszFormat, va_list argList){};

	// formatting for localization (uses FormatMessage API)

	// format using FormatMessage API on passed string
	void FormatMessage(TLPCSTR lpszFormat, ...){};
	// format using FormatMessage API on referenced string resource
	void FormatMessage(TUINT nFormatID, ...){};

	// load from string resource
	TBOOL LoadString(TUINT nID){ return true; };

	// Access to string implementation buffer as "C" character array

	// get pointer to modifiable buffer at least as long as nMinBufLength
	TLPSTR GetBuffer(int nMinBufLength){ return TNULL; };
	// release buffer, setting length to nNewLength (or to first nul if -1)
	void ReleaseBuffer(int nNewLength = -1){};
	// get pointer to modifiable buffer exactly as long as nNewLength
	TLPSTR GetBufferSetLength(int nNewLength){ return TNULL; };
	// release memory allocated to but unused by string
	void FreeExtra(){};

	// Use LockBuffer/UnlockBuffer to turn refcounting off

	// turn refcounting back on
	TLPSTR LockBuffer(){ return TNULL; };
	// turn refcounting off
	void UnlockBuffer(){};

// Implementation
public:
    ~TString(){};
    int GetAllocLength() const{ return 0; };

protected:
	TLPSTR m_pchData;   // pointer to ref counted string data

	// implementation helpers
	TStringData* GetData() const{ return TNULL; };
	void Init();
	void AllocCopy(TString& dest, int nCopyLen, int nCopyIndex, int nExtraLen) const{};
	void AllocBuffer(int nLen){};
	void AssignCopy(int nSrcLen, TLPCSTR lpszSrcData){};
	void ConcatCopy(int nSrc1Len, TLPCSTR lpszSrc1Data, int nSrc2Len, TLPCSTR lpszSrc2Data){};
	void ConcatInPlace(int nSrcLen, TLPCSTR lpszSrcData){};
	void CopyBeforeWrite(){};
	void AllocBeforeWrite(int nLen){};
	void Release(){};
	static void Release(TStringData* pData){};
	static int SafeStrlen(TLPCSTR lpsz);
	static void FreeData(TStringData* pData){};
};	//TString


extern TLPCTSTR T_afxPchNil;
#define TafxEmptyString ((TString&)*(TString*)&T_afxPchNil)//TAfxGetEmptyString()
//#define TafxEmptyString TAfxGetEmptyString()

inline void TString::Init()
{
	m_pchData = TafxEmptyString.m_pchData;
};

inline int TString::SafeStrlen(TLPCTSTR lpsz)
	{ return (lpsz == NULL) ? 0 : strlen(lpsz);} //lstrlen used for unicode,strlen used for ansi

// from unsigned characters
inline TString::TString( const unsigned char * lpsz )
	{ Init(); *this = (TLPCSTR)lpsz; }

// get data length
inline int TString::GetLength() const
	{ return GetData()->nDataLength; }

// TRUE if zero length
inline TBOOL TString::IsEmpty() const
	{ return GetData()->nDataLength == 0; }

// return single character at zero-based index
inline char TString::GetAt( int nIndex ) const
{
	assert(nIndex >= 0);
	assert(nIndex < GetData()->nDataLength);
	return m_pchData[nIndex];
}
	
// return single character at zero-based index
inline char TString::operator[]( int nIndex ) const
{
	// same as GetAt
	assert(nIndex >= 0);
	assert(nIndex < GetData()->nDataLength);
	return m_pchData[nIndex];
}

// return pointer to const string
inline TString::operator TLPCSTR() const
	{ return m_pchData; }
	
// copy string content from unsigned chars
inline const TString& TString::operator=(const unsigned char* lpsz)
	{ *this = (TLPCSTR)lpsz; return *this; }

// string comparison=================================

// straight character comparison
inline int TString::Compare(TLPCTSTR lpsz) const
{ 
	//ASSERT(AfxIsValidString(lpsz)); 
	//return _tcscmp(m_pchData, lpsz); 
	return strcmp(m_pchData, lpsz); 
}    // MBCS/Unicode aware

// compare ignoring case
inline int TString::CompareNoCase(TLPCTSTR lpsz) const  //等待改造???
{ 
	//ASSERT(AfxIsValidString(lpsz)); 
	//return _tcsicmp(m_pchData, lpsz); 
	
	return 0;//stricmp(m_pchData, lpsz); //以大小寫不敏感方式比較兩個串
}   // MBCS/Unicode aware	

// CString::Collate is often slower than Compare but is MBSC/Unicode
//  aware as well as locale-sensitive with respect to sort order.
	// NLS aware comparison, case sensitive
inline int TString::Collate(TLPCTSTR lpsz) const	//等待改造???
{ 
	//ASSERT(AfxIsValidString(lpsz)); 
	//return _tcscoll(m_pchData, lpsz);
	return 0;
}   // locale sensitive

// NLS aware comparison, case insensitive
inline int TString::CollateNoCase(TLPCTSTR lpsz) const	//等待改造???
{ 
	//ASSERT(AfxIsValidString(lpsz)); 
	//return _tcsicoll(m_pchData, lpsz); 
	return 0;
}   // locale sensitive	

#endif //__TString_H__

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人性色生活片| 日韩午夜精品视频| 欧美一区二区三区白人| 2014亚洲片线观看视频免费| 亚洲欧美国产77777| 国产麻豆精品一区二区| 欧美日韩国产综合一区二区 | 天天综合日日夜夜精品| 麻豆传媒一区二区三区| 色噜噜狠狠成人中文综合| 久久这里只有精品视频网| 视频一区二区三区中文字幕| 99在线精品观看| 久久精品视频一区二区三区| 石原莉奈在线亚洲二区| 在线精品视频免费播放| 国产精品久久久久久久久晋中 | 国产精品乱码人人做人人爱| 免费成人你懂的| 欧美日韩精品欧美日韩精品 | 成人91在线观看| 久久综合九色综合97_久久久| 亚洲成av人片在线| 在线中文字幕一区二区| 亚洲精品乱码久久久久久久久| 国产91综合网| 国产午夜精品一区二区三区嫩草| 毛片av一区二区| 欧美一级爆毛片| 免费看日韩a级影片| 欧美一区二区啪啪| 日韩在线一二三区| 在线不卡中文字幕| 免费在线观看一区二区三区| 51精品久久久久久久蜜臀| 手机精品视频在线观看| 5858s免费视频成人| 秋霞电影网一区二区| 91精品国产一区二区三区| 奇米影视一区二区三区| 亚洲精品一线二线三线| 高清在线不卡av| 国产精品久久久久婷婷| 99re在线视频这里只有精品| 日韩伦理电影网| 在线观看日韩精品| 日本欧美大码aⅴ在线播放| 日韩你懂的在线观看| 精品一区免费av| 国产精品素人视频| 色先锋资源久久综合| 亚洲成人激情av| 日韩欧美国产小视频| 国产精品白丝av| 亚洲品质自拍视频| 91精品国产综合久久精品麻豆| 毛片基地黄久久久久久天堂| 久久久亚洲午夜电影| 91视视频在线观看入口直接观看www | 免费在线观看一区二区三区| 欧美成人乱码一区二区三区| 国产精品一区二区视频| 成人免费视频在线观看| 欧美视频中文字幕| 国产一区二区不卡| 亚洲永久精品国产| 精品国产欧美一区二区| 99精品国产视频| 麻豆精品在线观看| 国产精品护士白丝一区av| 欧美日韩精品欧美日韩精品| 国产一区二区三区高清播放| 玉米视频成人免费看| 精品动漫一区二区三区在线观看| 91看片淫黄大片一级| 久久超碰97人人做人人爱| 中文字幕一区二区日韩精品绯色| 欧美日韩日本视频| 国产iv一区二区三区| 亚洲成人久久影院| 国产精品久久久久影院色老大| 91麻豆精品国产自产在线| 成人免费毛片高清视频| 日韩黄色小视频| 亚洲天堂成人在线观看| 久久久99免费| 欧美久久一区二区| av一区二区三区四区| 精品一区二区三区免费视频| 亚洲一区二区中文在线| 国产精品久久久久久久久免费相片| 欧美一区二区不卡视频| 色成年激情久久综合| 国产·精品毛片| 激情成人午夜视频| 日韩av一二三| 无吗不卡中文字幕| 亚洲一级二级在线| 中文字幕一区二区日韩精品绯色| 久久亚洲一区二区三区四区| 91精品麻豆日日躁夜夜躁| 在线中文字幕一区二区| 91麻豆自制传媒国产之光| 成人免费视频免费观看| 国产精品99久久久久久有的能看| 久久精品国产色蜜蜜麻豆| 免费成人在线影院| 美国欧美日韩国产在线播放| 日韩高清一级片| 视频一区视频二区中文字幕| 午夜不卡av在线| 午夜精品福利在线| 婷婷中文字幕一区三区| 一区av在线播放| 亚洲一二三区视频在线观看| 一区二区三区四区五区视频在线观看| 国产精品电影院| 亚洲欧美日韩精品久久久久| 国产精品国产三级国产普通话蜜臀| 国产视频亚洲色图| 国产精品美女久久福利网站| 国产精品黄色在线观看| 亚洲精品乱码久久久久久 | 国产精品欧美久久久久一区二区| 国产视频一区在线观看| 国产精品丝袜久久久久久app| 国产精品视频第一区| 中文字幕日韩一区| 亚洲欧美日韩国产综合| 亚洲成人免费视| 久久精品国产亚洲aⅴ| 国产不卡高清在线观看视频| 成人激情动漫在线观看| 91丨porny丨首页| 欧美男男青年gay1069videost| 日韩欧美国产一区二区在线播放| 久久免费视频一区| 最新国产成人在线观看| 丝袜美腿亚洲综合| 国产剧情av麻豆香蕉精品| av中文字幕不卡| 777xxx欧美| 国产欧美精品一区二区色综合朱莉| 亚洲视频电影在线| 美女一区二区三区| 成人av网址在线| 欧美日韩在线播放三区| 精品第一国产综合精品aⅴ| 国产精品久久久久久久久免费相片 | 五月天视频一区| 国产九色精品成人porny| 99精品在线免费| 日韩亚洲欧美一区| 国产欧美一区二区精品婷婷| 亚洲啪啪综合av一区二区三区| 首页国产欧美久久| 99精品国产91久久久久久| 91精品综合久久久久久| 国产精品理论在线观看| 日韩电影一区二区三区| 成人动漫av在线| 日韩欧美精品在线| 亚洲精品乱码久久久久久| 久久精品国产精品亚洲综合| 色噜噜狠狠色综合中国| 国产欧美日韩综合精品一区二区| 三级不卡在线观看| aaa国产一区| 久久综合九色综合97婷婷| 午夜视频一区在线观看| av高清久久久| 2023国产精品| 天天免费综合色| 91在线你懂得| 久久久久久久一区| 日韩电影免费在线看| 色噜噜久久综合| 国产精品毛片久久久久久| 国产在线一区观看| 欧美一区二区三区免费视频| 亚洲午夜私人影院| 94-欧美-setu| 中文字幕电影一区| 国产一区二区三区电影在线观看| 欧美精品久久一区| 亚洲成人精品一区| 欧美亚洲自拍偷拍| 亚洲综合色成人| 色嗨嗨av一区二区三区| 亚洲同性gay激情无套| 成人一区在线观看| 国产清纯在线一区二区www| 精品在线播放免费| 欧美成人女星排名| 精品夜夜嗨av一区二区三区| 欧美一区二区三区在线视频| 日韩高清一级片| 91精品欧美久久久久久动漫 | 亚洲一区影音先锋| 色婷婷综合久久久中文字幕|