Třída CStringT
Tato třída představuje CStringT objektu.
template< typename BaseType, class StringTraits >
class CStringT :
public CSimpleStringT< BaseType, _CSTRING_IMPL_::_MFCDLLTraitsCheck< BaseType, StringTraits > ::c_bIsMFCDLLTraits>
Parametry
BaseType
Znak typu třídy string.Může být jeden z následujících:char(pro řetězce znaků ANSI).
wchar_t(pro řetězce znaků Unicode).
TCHAR (pro řetězce znaků Unicode i ANSI).
StringTraits
Určí, pokud třída string potřebuje podporu knihovně C Runtime (CRT) a kde jsou umístěny prostředky řetězec.Může být jeden z následujících:StrTraitATL < wchar_t | char | TCHAR, ChTraitsCRT < wchar_t | char | TCHAR > >
Třída vyžaduje podporu CRT a vyhledá řetězce prostředek určený modul m_hInstResource (člen třídy modul aplikace).
StrTraitATL < wchar_t | char | TCHAR, ChTraitsOS < wchar_t | char | TCHAR > >
Třída nevyžaduje podporu CRT a vyhledá řetězce prostředek určený modul m_hInstResource (člen třídy modul aplikace).
StrTraitMFC < wchar_t | char | TCHAR, ChTraitsCRT < wchar_t | char | TCHAR > >
Třída vyžaduje podporu CRT a vyhledá pomocí standardního algoritmu hledání MFC zdrojové řetězce.
StrTraitMFC < wchar_t | char | TCHAR, ChTraitsOS < wchar_t | char | TCHAR > >
Třída nevyžaduje podporu CRT a vyhledá pomocí standardního algoritmu hledání MFC zdrojové řetězce.
Členy
Veřejné konstruktory
Název |
Description |
---|---|
Konstrukce CStringT objektu různými způsoby. |
|
Ničí CStringT objektu. |
Veřejné metody
Název |
Description |
---|---|
Přidělí BSTR z CStringT data. |
|
Provede převod v místě znakovou sadu OEM znakové sady ANSI. |
|
Formátovaná data připojí ke stávajícímu CStringT objektu. |
|
Porovná dva řetězce (velká a malá písmena, informace o použití národního prostředí). |
|
Porovná dva řetězce (případ nízkou citlivostí, informace o použití národního prostředí). |
|
Porovná dva řetězce (jsou rozlišována malá a velká písmena). |
|
Porovná dva řetězce (nerozlišuje malá a velká písmena). |
|
Odstraní znaky z řetězce. |
|
Najde znaky nebo podřetězec uvnitř větších řetězec. |
|
Nalezne první odpovídající znakové sady. |
|
Zformátuje řetězec jako sprintf nemá. |
|
Zformátuje řetězec zprávy. |
|
Zformátuje řetězec zprávy pomocí Proměnný seznam argumentů. |
|
Zformátuje řetězec pomocí Proměnný seznam argumentů. |
|
Nastaví hodnotu proměnné prostředí zadaný řetězec. |
|
Vloží znak nebo řetězec v daném indexu v řetězci. |
|
Extrahuje levá část řetězce. |
|
Načte existující CStringT objekt z prostředků systému Windows. |
|
Převede všechny znaky tento řetězec na malá písmena. |
|
Vrátí řetězec. |
|
Převede všechny znaky tento řetězec na velká písmena. |
|
Extrahuje střední část řetězce. |
|
Provádí v místě převod z OEM znakové sady znakové sady ANSI. |
|
Odebere uvedených znaků z řetězce. |
|
Nahradí uvedené znaky s jinými znaky. |
|
Najde znaky uvnitř větších řetězec; začíná od konce. |
|
Extrahuje pravou část řetězce. |
|
Nastaví existující BSTR s daty z objektu CStringT objektu. |
|
Extrahuje znaky z řetězce počínaje prvním znakem, které nejsou v sadě znaků, které jsou označeny pszCharSet . |
|
Extrahuje podřetězec obsahující znaky v sadě. |
|
Výpisy zadán řetězec cílové tokeny. |
|
Ořízne všechny úvodní a koncové mezery znaků z řetězce. |
|
TRIM, úvodní mezery znaků z řetězce. |
|
TRIM, koncové mezery znaků z řetězce. |
Operátory
Přiřadí nová hodnota CStringT objektu. |
|
Spojuje dva řetězce znaků a řetězec. |
|
Připojí nový řetězec na konec existující řetězec. |
|
Pokud jsou dva řetězce stejné logicky určuje. |
|
Určuje-li dva řetězce se logicky neshodují. |
|
Určuje, zda je řetězec na levé straně operátor menší než na řetězec na pravé straně. |
|
Určuje, zda řetězec na levé straně operátoru je větší než řetězec na pravé straně. |
|
Určuje, zda je řetězec na levé straně operátoru menší nebo rovna řetězci na pravé straně. |
|
Určuje, zda řetězec na levé straně operátoru je větší než nebo rovna řetězci na pravé straně. |
Poznámky
CStringTod CSimpleStringT třídy.Rozšířené funkce, například znak manipulace, řazení a hledání, jsou implementovány pomocí CStringT .
[!POZNÁMKA]
CStringTobjekty jsou schopny výjimky.K této situaci dochází při CStringT objektu dostatek paměti z nějakého důvodu.
A CStringT objekt obsahuje proměnné délky posloupnosti znaků.CStringTposkytuje funkce a operátory pomocí syntaxe podobné Basic.Zřetězení a operátory porovnání s paměti zjednodušená správa CStringT snadnější použití než běžný znak pole objektů.
[!POZNÁMKA]
Ačkoli je možné vytvořit CStringT instancí, které obsahují vložené znaky null, doporučujeme před ním.Volání metody a operátory v CStringT objekty, které obsahují vložené znaky null může způsobit neočekávané výsledky.
Pomocí různých kombinací BaseType a StringTraits parametry, CStringT mohou pocházet v následujících typech, které byly předdefinovány knihovny ATL objekty.
Pokud používáte v aplikaci ATL:
CString, CStringA , a CStringW jsou exportovány z DLL MFC (MFC90.(DLL), nikdy od uživatele knihovny DLL.Důvodem je zabránit CStringT z definovaného násobit.
[!POZNÁMKA]
Pokud zjistil chyby při exportu CString -třídy odvozené z rozšíření knihovny DLL v aplikaci Visual C++ .net 2002 MFC a použili řešení popsané v článku znalostní báze Knowledge Base "Propojení chyby při můžete importovat CString-Derived třídy" (Q309801) byste měli odebrat kód řešení, protože tato chyba byla opravena Visual C++ .net 2003.Články znalostní báze Knowledge Base můžete najít na disku CD-ROM MSDN Library, nebo na https://support.microsoft.com/support.
Jsou k dispozici v rámci aplikací MFC následující typy řetězec:
Typ CStringT |
Prohlášení |
---|---|
CStringA |
Znak ANSI, zadejte řetězec s podporou CRT. |
CStringW |
Znak Unicode zadejte řetězec s podporou CRT. |
CString |
Kódování Unicode i ANSI znakové typy s podporou CRT. |
Následující řetězec typy jsou k dispozici v projektech, kde ATL_CSTRING_NO_CRT je definován:
Typ CStringT |
Prohlášení |
---|---|
CAtlStringA |
Znak ANSI, zadejte řetězec bez podpory CRT. |
CAtlStringW |
Znak Unicode zadejte řetězec bez podpory CRT. |
CAtlString |
Kódování Unicode i ANSI znakové typy bez podpory CRT. |
Následující řetězec typy jsou k dispozici v projektech, kde ATL_CSTRING_NO_CRT není definován:
Typ CStringT |
Prohlášení |
---|---|
CAtlStringA |
Znak ANSI, zadejte řetězec s podporou CRT. |
CAtlStringW |
Znak Unicode zadejte řetězec s podporou CRT. |
CAtlString |
Kódování Unicode i ANSI znakové typy s podporou CRT. |
CStringobjekty mají také následující vlastnosti:
CStringTobjekty můžete zvětšit z operací zřetězení.
CStringTobjekty podle "hodnota sémantiku." Představte si, že CStringT objektu jako skutečné řetězec, nikoli jako ukazatel na řetězec.
Volně lze nahradit CStringT pro objekty PCXSTR argumenty funkce.
Správa vlastní paměti pro vyrovnávací paměti řetězec.Další informace naleznete v tématu Správa paměti a CStringT.
CStringT předdefinované typy
Protože CStringT používá šablonu argument typ znak (buď wchar_t nebo char) podporovány typy parametrů metody může být složité době.Zjednodušit tento problém, sadu předdefinovaných typů definovaných a používány CStringT třídy.Následující tabulka uvádí různé typy:
Název |
Description |
---|---|
XCHAR |
Znak (buď wchar_t nebo char ) stejného typu jako znak CStringT objektu. |
YCHAR |
Znak (buď wchar_t nebo char ) s opačným znak typu jako CStringT objektu. |
PXSTR |
Ukazatel na řetězec znaků (buď wchar_t nebo char ) stejného typu jako znak CStringT objektu. |
PYSTR |
Ukazatel na řetězec znaků (buď wchar_t nebo char ) s opačným znak typu jako CStringT objektu. |
PCXSTR |
Ukazatel const řetězec znaků (buď wchar_t nebo char ) stejného typu jako znak CStringT objektu. |
PCYSTR |
Ukazatel const řetězec znaků (buď wchar_t nebo char ) s opačným znak typu jako CStringT objektu. |
[!POZNÁMKA]
Kód, který již používá nezdokumentovaný metody CString (jako například AssignCopy) nutné nahradit kód, který používá následující dokumentované metody CStringT (jako GetBuffer nebo ReleaseBuffer ).Tyto metody jsou zděděny z CSimpleStringT .
Hierarchii dědičnosti
CStringT
Požadavky
Záhlaví |
Použití |
---|---|
cstringt.h |
Řetězec pouze MFC objekty |
atlstr.h |
Objekty mimo MFC řetězec |