![Symbian Developer Library](../../../../a_stock/images/mainheading.gif)
![]() |
![]() |
|
class TChar;
Holds a character value and provides a number of utility functions to manipulate it and test its properties.
For example, there are functions to convert the character to uppercase and test whether or not it is a control character.
The character value is stored as a 32-bit unsigned integer. The shorthand "TChar value" is used to describe the character value wrapped by a TChar object.
TChar can be used to represent Unicode values outside plane 0 (that is, the extended Unicode range from 0x10000 to 0xFFFFF). This differentiates it from TText which can only be used for 16-bit Unicode character values.
Defined in TChar
:
Compose(TUint &,const TDesC16 &)
Composes a string of Unicode characters to produce a single character result.Decompose(TPtrC16 &)const
Maps this character to its maximal canonical decomposition.EAlphaGroup
Alphabetic letters.EArabicNumber
Arabic number.EBoundaryNeutral
Boundary Neutral.ECcCategory
Other, Control. ECfCategory
Other, Format. ECnCategory
Other, Not Assigned. ECoCategory
Other, Private Use. ECommonNumberSeparator
Common number separator.EControlGroup
Control, format, private use, unassigned.ECsCategory
Other, Surrogate. EEuropeanNumber
European number.EEuropeanNumberSeparator
European number separator.EEuropeanNumberTerminator
European number terminator.EFoldAccents
Strip accentsEFoldAll
Perform all possible folding operations EFoldCase
Convert characters to their lower case form if any.EFoldDigits
Convert digits representing values 0..9 to characters '0'..'9'EFoldKana
Convert hiragana to katakana.EFoldSpaces
Convert all spaces (ordinary, fixed-width, ideographic, etc.) to ' 'EFoldStandard
Perform standard folding operations, i.e.those done by TChar::Fold() with no arg...EFoldWidth
Fold fullwidth and halfwidth variants to their standard formsEFullWidth
Character which occupies 2 cells. EHalfWidth
Character which occupies a single cell.ELeftToRight
Left to right.ELeftToRightEmbedding
Left to right embedding.ELeftToRightOverride
Left-to-Right Override.ELetterModifierGroup
Letter modifiers.ELetterOtherGroup
Other letters.ELlCategory
Letter, Lowercase. ELmCategory
Letter, Modifier.ELoCategory
Letter, Other.ELtCategory
Letter, Titlecase.ELuCategory
Letter, Uppercase. EMarkGroup
Marks group.EMaxAssignedCategory
The highest possible category for assigned 16-bit characters; does not include s...EMaxAssignedGroup
The highest possible groups category.EMaxGraphicCategory
The highest possible graphic character category. EMaxLetterCategory
The highest possible (non-modifier) letter category.EMaxLetterOrLetterModifierCategory
The highest possible letter category.EMaxPrintableCategory
The highest possible printable character category. EMcCategory
Mark, Combining. EMeCategory
Mark, Enclosing. EMnCategory
Mark, Non-SpacingENarrow
Characters that are always narrow and have explicit full-width counterparts. All...ENdCategory
Number, Decimal Digit. ENeutralWidth
Includes 'ambiguous width' defined in Unicode Technical Report 11: East Asian Wi...ENlCategory
Number, Letter. ENoCategory
Number, Other. ENonSpacingMark
Non Spacing Mark.ENumberGroup
Numbers group.EOtherNeutral
Other neutrals; all other characters: punctuation, symbols.EParagraphSeparator
Paragraph Separator.EPcCategory
Punctuation, Connector. EPdCategory
Punctuation, Dash. EPeCategory
Punctuation, Close. EPfCategory
Punctuation, Final QuoteEPiCategory
Punctuation, Initial QuoteEPoCategory
Punctuation, Other. EPopDirectionalFormat
Pop Directional Format.EPsCategory
Punctuation, Open. EPunctuationGroup
Punctuation group.ERightToLeft
Right to left.ERightToLeftArabic
Right to left Arabic.ERightToLeftEmbedding
Right to left embedding.ERightToLeftOverride
Right-to-Left Override.EScCategory
Symbol, Currency. ESegmentSeparator
Segment separator.ESeparatorGroup
Separators group.EShiftJIS
The shift-JIS encoding (used in Japan). ESkCategory
Symbol, Modifier. ESmCategory
Symbol, Math. ESoCategory
Symbol, Other. ESymbolGroup
Symbols group.EUnassignedGroup
Unassigned to any other group. EUnicode
The Unicode encoding.EWhitespace
WhitespaceEWide
Characters that are always wide. This category includes characters that have exp...EZlCategory
Separator, Line. EZpCategory
Separator, Paragraph. EZsCategory
Separator, Space. Eos()const
Tests whether the character is the C/C++ end-of-string character - 0.Fold()
Converts the character to a form which can be used in tolerant comparisons witho...Fold(TInt)
Converts the character to a form which can be used in tolerant comparisons allow...GetBdCategory()const
Gets the bi-directional category of a character.GetCategory()const
Gets this character's Unicode category.GetCjkWidth()const
Gets the Chinese, Japanese, Korean (CJK) notional width.GetCombiningClass()const
Gets this character's combining class.GetInfo(TCharInfo &)const
Gets this character;s standard category information.GetLowerCase()const
Gets the character value after conversion to lowercase or the character's own va...GetNumericValue()const
Gets the integer numeric value of this character.GetTitleCase()const
Gets the character value after conversion to titlecase or the character's own va...GetUpperCase()const
Gets the character value after conversion to uppercase or the character's own va...IsAlpha()const
Tests whether the character is alphabetic.IsAlphaDigit()const
Tests whether the character is alphabetic or a decimal digit.IsAssigned()const
Tests whether this character has an assigned meaning in the Unicode encoding.IsControl()const
Tests whether the character is a control character.IsDigit()const
Tests whether the character is a standard decimal digit.IsGraph()const
Tests whether the character is a graphic character.IsHexDigit()const
Tests whether the character is a hexadecimal digit (0-9, a-f, A-F).IsLower()const
Tests whether the character is lowercase.IsMirrored()const
Tests whether this character has the mirrored property.IsPrint()const
Tests whether the character is a printable character.IsPunctuation()const
Tests whether the character is a punctuation character.IsSpace()const
Tests whether the character is a white space character.IsTitle()const
Tests whether this character is in titlecase.IsUpper()const
Tests whether the character is uppercase.LowerCase()
Converts the character to its lowercase form.SetChar(TUint)
TBdCategory
The bi-directional Unicode character category.TCategory
General Unicode character category.TChar()
Default constructor.TChar(TUint)
Constructs this character object and initialises it with the specified value.TCharInfo
A structure to hold information about a Unicode character.TCjkWidth
Notional character width as known to East Asian (Chinese, Japanese, Korean (CJK...TEncoding
Encoding systems used by the translation functions. TitleCase()
Converts the character to its titlecase form.UpperCase()
Converts the character to its uppercase form.anonymous
Flags defining operations to be performed using TChar::Fold().operator TUint()const
Gets the value of the character as an unsigned integer.operator+(TUint)
Gets the result of adding an unsigned integer value to this character object.operator+=(TUint)
Adds an unsigned integer value to this character object.operator-(TUint)
Gets the result of subtracting an unsigned integer value from this character obj...operator-=(TUint)
Subtracts an unsigned integer value from this character object.inline TChar();
Default constructor.
Constructs this character object with an undefined value.
inline TChar(TUint aChar);
Constructs this character object and initialises it with the specified value.
|
inline TChar& operator-=(TUint aChar);
Subtracts an unsigned integer value from this character object.
This character object is changed by the operation.
|
|
inline TChar& operator+=(TUint aChar);
Adds an unsigned integer value to this character object.
This character object is changed by the operation.
|
|
inline TChar operator-(TUint aChar);
Gets the result of subtracting an unsigned integer value from this character object.
This character object is not changed.
|
|
inline TChar operator+(TUint aChar);
Gets the result of adding an unsigned integer value to this character object.
This character object is not changed.
|
|
inline operator TUint() const;
Gets the value of the character as an unsigned integer.
The operator casts a TChar to a TUint, returning the TUint value wrapped by this character object.
|
inline void Fold();
Converts the character to a form which can be used in tolerant comparisons without control over the operations performed.
Tolerant comparisons are those which ignore character differences like case and accents.
This function can be used when searching for a string in a text file or a file in a directory. Folding performs the following conversions: converts to lowercase, strips accents, converts all digits representing the values 0..9 to the ordinary digit characters '0'..'9', converts all spaces (standard, non-break, fixed-width, ideographic, etc.) to the ordinary space character (0x0020), converts Japanese characters in the hiragana syllabary to katakana, and converts East Asian halfwidth and fullwidth variants to their ordinary forms. You can choose to perform any subset of these operations by using the other function overload.
User::Fold(TUint)
Folds the specified character.inline void LowerCase();
Converts the character to its lowercase form.
Characters lacking a lowercase form are unchanged.
User::LowerCase(TUint)
Converts the specified character to lower case.inline void UpperCase();
Converts the character to its uppercase form.
Characters lacking an uppercase form are unchanged.
User::UpperCase(TUint)
Converts a specified character to upper case.inline TBool Eos() const;
Tests whether the character is the C/C++ end-of-string character - 0.
|
IMPORT_C TUint GetUpperCase() const;
Gets the character value after conversion to uppercase or the character's own value, if no uppercase form exists.
The character object itself is not changed.
|
IMPORT_C TUint GetLowerCase() const;
Gets the character value after conversion to lowercase or the character's own value, if no lowercase form exists.
The character object itself is not changed.
|
IMPORT_C TBool IsLower() const;
Tests whether the character is lowercase.
|
IMPORT_C TBool IsUpper() const;
Tests whether the character is uppercase.
|
IMPORT_C TBool IsAlpha() const;
Tests whether the character is alphabetic.
For Unicode, the function returns TRUE for all letters, including those from syllabaries and ideographic scripts. The function returns FALSE for letter-like characters that are in fact diacritics. Specifically, the function returns TRUE for categories: ELuCategory, ELtCategory, ELlCategory, and ELoCategory; it returns FALSE for all other categories including ELmCategory.
|
TChar::IsAlphaDigit()const
Tests whether the character is alphabetic or a decimal digit.TChar::TCategory
General Unicode character category.IMPORT_C TBool IsDigit() const;
Tests whether the character is a standard decimal digit.
For Unicode, this function returns TRUE only for the digits '0'...'9' (U+0030...U+0039), not for other digits in scripts like Arabic, Tamil, etc.
|
TChar::GetCategory()const
Gets this character's Unicode category.TChar::GetNumericValue()const
Gets the integer numeric value of this character.IMPORT_C TBool IsAlphaDigit() const;
Tests whether the character is alphabetic or a decimal digit.
It is identical to (TChar::IsAlpha()const
||IsDigit()).
|
TChar::IsAlpha()const
Tests whether the character is alphabetic.TChar::IsDigit()const
Tests whether the character is a standard decimal digit.IMPORT_C TBool IsHexDigit() const;
Tests whether the character is a hexadecimal digit (0-9, a-f, A-F).
|
IMPORT_C TBool IsSpace() const;
Tests whether the character is a white space character.
White space includes spaces, tabs and separators.
For Unicode, the function returns TRUE for all characters in the categories: EZsCategory, EZlCategory and EZpCategory, and also for the characters 0x0009 (horizontal tab), 0x000A (linefeed), 0x000B (vertical tab), 0x000C (form feed), and 0x000D (carriage return).
|
TChar::TCategory
General Unicode character category.IMPORT_C TBool IsPunctuation() const;
Tests whether the character is a punctuation character.
For Unicode, punctuation characters are any character in the categories: EPcCategory, EPdCategory, EPsCategory, EPeCategory, EPiCategory, EPfCategory, EPoCategory.
|
TChar::TCategory
General Unicode character category.IMPORT_C TBool IsGraph() const;
Tests whether the character is a graphic character.
For Unicode, graphic characters include printable characters but not the space character. Specifically, graphic characters are any character except those in categories: EZsCategory,EZlCategory,EZpCategory, ECcCategory,ECfCategory, ECsCategory, ECoCategory, and ,ECnCategory.
Note that for ISO Latin-1, all alphanumeric and punctuation characters are graphic.
|
TChar::TCategory
General Unicode character category.IMPORT_C TBool IsPrint() const;
Tests whether the character is a printable character.
For Unicode, printable characters are any character except those in categories: ECcCategory, ECfCategory, ECsCategory, ECoCategory and ECnCategory.
Note that for ISO Latin-1, all alphanumeric and punctuation characters, plus space, are printable.
|
TChar::TCategory
General Unicode character category.IMPORT_C TBool IsControl() const;
Tests whether the character is a control character.
For Unicode, the function returns TRUE for all characters in the categories: ECcCategory, ECfCategory, ECsCategory, ECoCategory and ECnCategoryCc.
|
TChar::TCategory
General Unicode character category.inline void Fold(TInt aFlags);
Converts the character to a form which can be used in tolerant comparisons allowing selection of the specific fold operations to be performed.
|
TChar::EFoldCase
Convert characters to their lower case form if any.User::Fold(TUint)
Folds the specified character.inline void TitleCase();
Converts the character to its titlecase form.
The titlecase form of a character is identical to its uppercase form unless a specific titlecase form exists. Characters lacking a titlecase form are unchanged.
IMPORT_C TUint GetTitleCase() const;
Gets the character value after conversion to titlecase or the character's own value, if no titlecase form exists.
The titlecase form of a character is identical to its uppercase form unless a specific titlecase form exists.
|
IMPORT_C TBool IsTitle() const;
Tests whether this character is in titlecase.
|
IMPORT_C TBool IsAssigned() const;
Tests whether this character has an assigned meaning in the Unicode encoding.
All characters outside the range 0x0000 - 0xFFFF are unassigned and there are also many unassigned characters within the Unicode range.
Locales can change the assigned/unassigned status of characters. This means that the precise behaviour of this function is locale-dependent.
|
IMPORT_C void GetInfo(TCharInfo &aInfo) const;
Gets this character;s standard category information.
This includes everything except its CJK width and decomposition, if any.
|
IMPORT_C TCategory GetCategory() const;
Gets this character's Unicode category.
|
IMPORT_C TBdCategory GetBdCategory() const;
Gets the bi-directional category of a character.
For more information on the bi-directional algorithm, see Unicode Technical Report No. 9 available at: http://www.unicode.org/unicode/reports/tr9/.
|
IMPORT_C TInt GetCombiningClass() const;
Gets this character's combining class.
Note that diacritics and other combining characters have non-zero combining classes.
|
IMPORT_C TBool IsMirrored() const;
Tests whether this character has the mirrored property.
Mirrored characters, like ( ) [ ] < >, change direction according to the directionality of the surrounding characters. For example, an opening parenthesis 'faces right' in Hebrew or Arabic, and to say that 2 < 3 you would have to say that 3 > 2, where the '>' is, in this example, a less-than sign to be read right-to-left.
|
IMPORT_C TInt GetNumericValue() const;
Gets the integer numeric value of this character.
Numeric values need not be in the range 0..9; the Unicode character set includes various other numeric characters such as the Roman and Tamil numerals for 500, 1000, etc.
|
IMPORT_C TCjkWidth GetCjkWidth() const;
Gets the Chinese, Japanese, Korean (CJK) notional width.
Some display systems used in East Asia display characters on a grid of fixed-width character cells like the standard MSDOS display mode.
Some characters, e.g. the Japanese katakana syllabary, take up a single character cell and some characters, e.g., kanji, Chinese characters used in Japanese, take up two. These are called half-width and full-width characters. This property is fixed and cannot be overridden for particular locales.
For more information on returned widths, see Unicode Technical Report 11 on East Asian Width available at: http://www.unicode.org/unicode/reports/tr11/
|
IMPORT_C static TBool Compose(TUint &aResult, const TDesC16 &aSource);
Composes a string of Unicode characters to produce a single character result.
For example, 0061 ('a') and 030A (combining ring above) compose to give 00E5 ('a' with ring above).
A canonical decomposition is a relationship between a string of characters - usually a base character and one or more diacritics - and a composed character. The Unicode standard requires that compliant software treats composed characters identically with their canonical decompositions. The mappings used by these functions are fixed and cannot be overridden for particular locales.
|
|
IMPORT_C TBool Decompose(TPtrC16 &aResult) const;
Maps this character to its maximal canonical decomposition.
For example, 01E1 ('a' with dot above and macron) decomposes into 0061 ('a') 0307 (dot) and 0304 (macron).
Note that this function is used during collation, as performed by the Mem::CompareC(const TUint8 *,TInt,const TUint8 *,TInt)
function, to convert the compared strings to their maximal canonical decompositions.
|
|
Mem::CompareC(const TUint8 *,TInt,const TUint8 *,TInt)
Compares a block of data at one specified location with a block of data at anoth...TChar::Compose(TUint &,const TDesC16 &)
Composes a string of Unicode characters to produce a single character result.struct TCharInfo;
A structure to hold information about a Unicode character.
An object of this type is passed to TChar::GetInfo(TCharInfo &)const
.
Defined in TChar::TCharInfo
:
iBdCategory
Bi-directional category. iCategory
General category.iCombiningClass
Combining class: number (currently) in the range 0..234 iLowerCase
Lower case form. iMirrored
True, if the character is mirrored. iNumericValue
Integer numeric value: -1 if none, -2 if a fraction. iTitleCase
Title case form. iUpperCase
Upper case form. TChar::GetInfo(TCharInfo &)const
Gets this character;s standard category information.iCategory
TCategory iCategory;
General category.
iBdCategory
TBdCategory iBdCategory;
Bi-directional category.
iCombiningClass
TInt iCombiningClass;
Combining class: number (currently) in the range 0..234
iLowerCase
TUint iLowerCase;
Lower case form.
iUpperCase
TUint iUpperCase;
Upper case form.
iTitleCase
TUint iTitleCase;
Title case form.
iMirrored
TBool iMirrored;
True, if the character is mirrored.
iNumericValue
TInt iNumericValue;
Integer numeric value: -1 if none, -2 if a fraction.
TCategory
General Unicode character category.
The high nibble encodes the major category (Mark, Number, etc.) and a low nibble encodes the subdivisions of that category.
The category codes can be used in three ways:
(i) as unique constants: there is one for each Unicode category, with a name of the form
E<XX>Category
where
<XX>
is the category name given by the Unicode database (e.g., the constant ELuCategory is used for lowercase letters, category Lu);
(ii) as numbers in certain ranges: letter categories are all <= EMaxLetterCategory;
(iii) as codes in which the upper nibble gives the category group (e.g., punctuation categories all yield TRUE for the test (category & 0xF0) ==EPunctuationGroup).
|
TBdCategory
The bi-directional Unicode character category.
For more information on the bi-directional algorithm, see Unicode Technical Report No. 9 available at: http://www.unicode.org/unicode/reports/tr9.
|
TCjkWidth
Notional character width as known to East Asian (Chinese, Japanese, Korean (CJK)) coding systems.
|
Interface status: | deprecated |
TEncoding
Encoding systems used by the translation functions.
|
n/a
Flags defining operations to be performed using TChar::Fold()
.
The flag values are passed to the TChar::Fold()
funtion.
TChar::Fold()
Converts the character to a form which can be used in tolerant comparisons witho...
|