TalanSoft Toolkits  201707
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Groups Pages
Namespaces | Classes | Typedefs | Enumerations | Functions
niLang String

Detailed Description

Namespaces

 ni
 

Classes

class  cString
 
class  StrCharIt
 
class  StrBreakIt< BREAKER >
 
struct  StrBreakLine
 
struct  StrBreakWord
 
struct  StrBreakSpace
 
struct  StrBreakChr
 
struct  StrBreakIdentifier
 

Typedefs

typedef StrBreakIt< StrBreakLine > StrBreakLineIt
 
typedef StrBreakIt< StrBreakWord > StrBreakWordIt
 
typedef StrBreakIt< StrBreakSpace > StrBreakSpaceIt
 
typedef StrBreakIt< StrBreakChr > StrBreakChrIt
 
typedef StrBreakIt
< StrBreakIdentifier > 
StrBreakIdentifierIt
 

Enumerations

enum  eStrFindFlags {
  eStrFindFlags_Forward,
  eStrFindFlags_Reversed,
  eStrFindFlags_ICmp,
  eStrFindFlags_ForwardI,
  eStrFindFlags_ReversedI
}
 Str find flags. More...
 
enum  eUCPCategory {
  eUCPCategory_Other,
  eUCPCategory_Letter,
  eUCPCategory_Mark,
  eUCPCategory_Number,
  eUCPCategory_Punctuation,
  eUCPCategory_Symbol,
  eUCPCategory_Separator
}
 Unicode code point general character categories. More...
 
enum  eUCPCharType {
  eUCPCharType_Cc,
  eUCPCharType_Cf,
  eUCPCharType_Cn,
  eUCPCharType_Co,
  eUCPCharType_Cs,
  eUCPCharType_Ll,
  eUCPCharType_Lm,
  eUCPCharType_Lo,
  eUCPCharType_Lt,
  eUCPCharType_Lu,
  eUCPCharType_Mc,
  eUCPCharType_Me,
  eUCPCharType_Mn,
  eUCPCharType_Nd,
  eUCPCharType_Nl,
  eUCPCharType_No,
  eUCPCharType_Pc,
  eUCPCharType_Pd,
  eUCPCharType_Pe,
  eUCPCharType_Pf,
  eUCPCharType_Pi,
  eUCPCharType_Po,
  eUCPCharType_Ps,
  eUCPCharType_Sc,
  eUCPCharType_Sk,
  eUCPCharType_Sm,
  eUCPCharType_So,
  eUCPCharType_Zl,
  eUCPCharType_Zp,
  eUCPCharType_Zs
}
 Unicode code point particular character types. More...
 
enum  eUCPScript {
  eUCPScript_Arabic,
  eUCPScript_Armenian,
  eUCPScript_Bengali,
  eUCPScript_Bopomofo,
  eUCPScript_Braille,
  eUCPScript_Buginese,
  eUCPScript_Buhid,
  eUCPScript_Canadian_Aboriginal,
  eUCPScript_Cherokee,
  eUCPScript_Common,
  eUCPScript_Coptic,
  eUCPScript_Cypriot,
  eUCPScript_Cyrillic,
  eUCPScript_Deseret,
  eUCPScript_Devanagari,
  eUCPScript_Ethiopic,
  eUCPScript_Georgian,
  eUCPScript_Glagolitic,
  eUCPScript_Gothic,
  eUCPScript_Greek,
  eUCPScript_Gujarati,
  eUCPScript_Gurmukhi,
  eUCPScript_Han,
  eUCPScript_Hangul,
  eUCPScript_Hanunoo,
  eUCPScript_Hebrew,
  eUCPScript_Hiragana,
  eUCPScript_Inherited,
  eUCPScript_Kannada,
  eUCPScript_Katakana,
  eUCPScript_Kharoshthi,
  eUCPScript_Khmer,
  eUCPScript_Lao,
  eUCPScript_Latin,
  eUCPScript_Limbu,
  eUCPScript_Linear_B,
  eUCPScript_Malayalam,
  eUCPScript_Mongolian,
  eUCPScript_Myanmar,
  eUCPScript_New_Tai_Lue,
  eUCPScript_Ogham,
  eUCPScript_Old_Italic,
  eUCPScript_Old_Persian,
  eUCPScript_Oriya,
  eUCPScript_Osmanya,
  eUCPScript_Runic,
  eUCPScript_Shavian,
  eUCPScript_Sinhala,
  eUCPScript_Syloti_Nagri,
  eUCPScript_Syriac,
  eUCPScript_Tagalog,
  eUCPScript_Tagbanwa,
  eUCPScript_Tai_Le,
  eUCPScript_Tamil,
  eUCPScript_Telugu,
  eUCPScript_Thaana,
  eUCPScript_Thai,
  eUCPScript_Tibetan,
  eUCPScript_Tifinagh,
  eUCPScript_Ugaritic,
  eUCPScript_Yi,
  eUCPScript_Balinese,
  eUCPScript_Cuneiform,
  eUCPScript_Nko,
  eUCPScript_Phags_Pa,
  eUCPScript_Phoenicia
}
 Unicode code point script identifications. More...
 

Functions

tBool ToString (const iToString *apToString, cString &dest)
 
template<typename T >
const achar * ToString (const T &v)
 
tU32 StrCharWidth (tU32 c)
 Get the size in bytes of the specified character. More...
 
tU32 StrSequenceLength (const achar *s)
 Get the size in bytes of the next character in the specified string. More...
 
tU32 StrCharDistance (const achar *a, const achar *b)
 Get the number of characters between a and b. More...
 
tU32 StrGetNext (const achar *s)
 Return the current character. More...
 
tU32 StrGetNextX (const achar **s)
 Return the current character and set the pointer to the next. More...
 
tU32 StrGetPrior (const achar *s)
 Return the previous character. More...
 
tU32 StrGetPriorX (const achar **s)
 Return the previous character and set the pointer to it. More...
 
tU32 StrSetChar (achar *s, tI32 c)
 Set a character in the specified buffer. Buffer should be at least 4 bytes wide. More...
 
tU32 StrSetCharX (achar **s, tI32 c)
 Set a character in the specified buffer and move the pointer after it. Buffer should be at least 4 bytes wide. More...
 
tBool StrIsValidCodePoint (tU32 c)
 Check whether the specified code point is a valid UTF8 character. More...
 
tBool StrIsValidSequence (const achar *b, const achar *e)
 Check whether the specified sequence is a valid UTF8 string. More...
 
tBool StrIsValidString (const achar *str)
 Check whether the specified string is valid UTF8 string. More...
 
tU32 StrOffset (const achar *s, tI32 idx)
 Returns the offset in bytes from the start of the string to the character at the specified index. If the index is negative, counts backward from the end of the string (-1 returns an offset to the last character). More...
 
tI32 StrSetAt (achar *s, tI32 index, tI32 c)
 Modifies the character at the specified index within the string, handling adjustments for variable width data. Returns how far the rest of the string was moved. More...
 
tI32 StrGetAt (const achar *s, tI32 index)
 Get the character at the specified character index. More...
 
tI32 StrInsert (achar *s, tI32 idx, tI32 c)
 Inserts a character at the specified index within a string, sliding following data along to make room. Returns how far the data was moved. More...
 
tI32 StrRemove (achar *s, tI32 idx)
 Removes the character at the specified index within the string, sliding following data back to make room. Returns how far the data was moved. More...
 
tI32 StrToLower (tI32 c)
 Utf8-aware version of the ANSI tolower() function. More...
 
tI32 StrToUpper (tI32 c)
 Utf8-aware version of the ANSI toupper() function. More...
 
tBool StrIsUpper (tI32 c)
 Utf8-aware version of the ANSI islower() function. More...
 
tBool StrIsLower (tI32 c)
 Utf8-aware version of the ANSI isupper() function. More...
 
tBool StrIsAlNum (tI32 c)
 Utf8-aware version of the ANSI isalnum() function. More...
 
tBool StrIsSpace (tI32 c)
 Utf8-aware version of the ANSI isspace() function. More...
 
tBool StrIsDigit (tI32 c)
 Utf8-aware version of the ANSI isdigit() function. More...
 
tBool StrIsXDigit (tI32 c)
 Utf8-aware version of the ANSI isxdigit() function. More...
 
tBool StrIsControl (tI32 c)
 Utf8-aware version of the ANSI iscntrl() function. More...
 
tBool StrIsLetter (tI32 c)
 Check whether the specified character should be considered part of a 'word'. More...
 
tBool StrIsLetterDigit (tI32 c)
 Check whether the specified character is a letter or a digit. More...
 
tI32 StrLen (const achar *s)
 Returns the number of characters in the specified utf8 string. More...
 
tI32 StrSize (const achar *s)
 Returns the size of the specified string in bytes, not including the trailing zero. More...
 
tI32 StrSizeZ (const achar *s)
 Returns the size of the specified string in bytes, including the trailing zero. More...
 
achar * StrZCpy (achar *dest, tI32 size, const achar *src)
 Enhanced Utf8-aware version of the ANSI strcpy() function that can handle the size (in bytes) of the destination string. The raw Utf8-aware version of ANSI strcpy() is defined as: More...
 
achar * StrZCat (achar *dest, tI32 size, const achar *src)
 Enhanced Utf8-aware version of the ANSI strcat() function that can handle the size (in bytes) of the destination string. The raw Utf8-aware version of ANSI strcat() is defined as: More...
 
achar * StrZNCpy (achar *dest, tI32 size, const achar *src, tSize n)
 Enhanced Utf8-aware version of the ANSI strncpy() function that can handle the size (in bytes) of the destination string. The raw Utf8-aware version of ANSI strncpy() is defined as: More...
 
achar * StrZNCat (achar *dest, tI32 size, const achar *src, tSize n)
 Enhanced Utf8-aware version of the ANSI strncat() function that can handle the size (in bytes) of the destination string. The raw Utf8-aware version of ANSI strncat() is defined as: More...
 
tI32 StrCmp (const achar *s1, const achar *s2)
 Utf8-aware version of the ANSI strcmp() function. More...
 
tI32 StrNCmp (const achar *s1, const achar *s2, tSize n)
 Utf8-aware version of the strncmp() function. More...
 
tI32 StrZCmp (const achar *s1, const achar *s2, tSize sz)
 Utf8-aware version of the strncmp() function, however takes number of bytes instead of character count. More...
 
tI32 StrICmp (const achar *s1, const achar *s2)
 Utf8-aware version of the stricmp() function. More...
 
tI32 StrNICmp (const achar *s1, const achar *s2, tSize n)
 Utf8-aware version of the strnicmp() function. More...
 
tI32 StrZICmp (const achar *s1, const achar *s2, tSize sz)
 Utf8-aware version of the strnicmp() function, however takes number of bytes instead of character count. More...
 
achar * StrLwr (achar *s)
 Utf8-aware version of the strlwr() function. More...
 
achar * StrUpr (achar *s)
 Utf8-aware version of the strupr() function. More...
 
const achar * StrChr (const achar *s, tI32 c)
 Utf8-aware version of the strchr() function. More...
 
const achar * StrRChr (const achar *s, tI32 c)
 Utf8-aware version of the strrchr() function. More...
 
const achar * StrStr (const achar *s1, const achar *s2)
 Utf8-aware version of the strstr() function. More...
 
const achar * StrRStr (const achar *s1, const achar *s2)
 Utf8-aware version of the strrstr() function. More...
 
const achar * StrPBrk (const achar *s, const achar *set)
 Utf8-aware version of the strpbrk() function. More...
 
achar * StrTok (achar *s, const achar *set, achar **last)
 Utf8-aware version of the strtok() function. More...
 
tI64 StrToL (const achar *s, const achar **endp, tI32 base)
 Utf8-aware version of the strtol() function. More...
 
tI64 StrAToL (const achar *s)
 Utf8-aware version of the atol() function. More...
 
tU64 StrToUL (const achar *s, const achar **endp, tI32 base)
 Utf8-aware version of the strtoul() function. More...
 
tU64 StrAToUL (const achar *s)
 Utf8-aware version of the atol() function. More...
 
tF64 StrToD (const achar *s, const achar **endp)
 Utf8-aware version of the strtod() function. More...
 
tF64 StrAToF (const achar *s)
 Utf8-aware version of the atof() function. More...
 
void StrValueToHexa (achar *d, tU64 value)
 Writes the specified number value as hexadecimal characters in the destination string. More...
 
void StrBytesToHexa (achar *d, tU8 *bytes, tU32 byteCount)
 Writes the specified number of bytes as hexadecimal characters in the destination string. More...
 
tI32 StrGetCommandPath (achar *dest, tU32 destMaxSize, const achar *src, tU32 *apLen)
 Get a path from a 'command line' string. Gets what is between the first quote '"' pair if present, else what is before the first space character. Returns the size in bytes of the path copied in the destination. More...
 
tSize StrCCPCount (const cchar *acszA)
 Return the number of code points in the specified UTF8 string. (equivalent to size for UTF8) More...
 
tSize StrGCPCount (const gchar *agszA)
 Return the number of code points in the specified UTF16 string. (size = num cp * sizeof(tU16)) More...
 
tSize StrXCPCount (const xchar *axszA)
 Return the number of code points in the specified UTF32 string. (size = num cp * sizeof(tU32)) More...
 
tBool StrIsInt (const achar *cszStr)
 
tI32 StrMapIndex (const tSize anLen, tI32 anIndex)
 
tBool StrStartsWith (const achar *aaszA, const achar *aaszB)
 
tBool StrStartsWithI (const achar *aaszA, const achar *aaszB)
 
tBool StrEndsWith (const achar *aaszA, const achar *aaszB)
 
tBool StrEndsWithI (const achar *aaszA, const achar *aaszB)
 
achar * StrZSubstr (achar *apOut, const achar *aStr, tU32 anStrSz, tI32 start, tU32 size=0xFFFF)
 
achar * StrZSlice (achar *apOut, const achar *aStr, tU32 anStrSz, tI32 start, tI32 end=0xFFFF)
 
achar * StrZMid (achar *apOut, const achar *aStr, tU32 anStrSz, tU32 anFirst, tU32 size=0xFFFF)
 
achar * StrZLeft (achar *apOut, const achar *aStr, tU32 anStrSz, tU32 anSize)
 
achar * StrZRight (achar *apOut, const achar *aStr, tU32 anStrSz, tU32 anSize)
 
tI32 StrZFindEx (tU32 anFindFlags, const achar *aStr, tU32 anStrSz, const achar *aToFind, tU32 anToFindSz, tI32 anStart=eInvalidHandle)
 
tI32 StrZFindChar (const achar *aStr, tU32 anStrSz, const tU32 aChar, tI32 anStart=0)
 
tI32 StrZRFindChar (const achar *aStr, tU32 anStrSz, const tU32 aChar, tI32 anStart=0x7fffffff)
 
tI32 StrZAfterPos (tU32 anFindFlags, const achar *aStr, tU32 anStrSz, const achar *aToFind, tU32 anToFindSz)
 
achar * StrZAfterEx (tU32 anFindFlags, achar *apOut, const achar *aStr, tU32 anStrSz, const achar *aToFind, tU32 anToFindSz)
 
tI32 StrZBeforePos (tU32 anFindFlags, const achar *aStr, tU32 anStrSz, const achar *aToFind, tU32 anToFindSz)
 
achar * StrZBeforeEx (tU32 anFindFlags, achar *apOut, const achar *aStr, tU32 anStrSz, const achar *aToFind, tU32 anToFindSz)
 
achar * StrPutPathSep (achar *filename)
 
achar * StrMakeStdPath (achar *path)
 
achar * StrFixPath (achar *dest, const achar *path, int size)
 
tBool StrIsAbsolutePath (const achar *path)
 
achar * StrSep (achar **stringp, const achar *delim)
 Get next token from string *appString, where tokens are possibly-empty strings separated by characters from aaszDelim. More...
 
achar * StrSepQuoted (achar **stringp, const achar *delim)
 Same as StrSep, except that it always considers quoted strings as one token and handles "" and " quote escaping. More...
 
tI32 StrFindProtocol (const achar *aURL)
 Returns the byte index of the ':' character of a :// protocol definition. More...
 
const achar * StrHasText (const achar *aText)
 Return the first non empty character in the string. NULL if there's not text in the string. More...
 
tU32 StrGetUCPProps (tU32 cp, tU32 *apCharType, tU32 *apScript)
 Get the unicode properties of the specified code point. More...
 
ni::tI32 StrCharItFindFirstOf (ni::StrCharIt &aIt, const ni::tU32 *aToFind, const ni::tU32 aNumToFind, ni::tU32 *aCharFound)
 
ni::tI32 StrCharItRFindFirstOf (ni::StrCharIt &aIt, const ni::tU32 *aToFind, const ni::tU32 aNumToFind, ni::tU32 *aCharFound)
 
tBool IsEmpty () const
 
tBool IsNotEmpty () const
 
const achar * Remove (tU32 lPos=eInvalidHandle)
 
cString GetWithoutBEQuote () const
 
cString StripQuotes () const
 
const achar * TrimRightEx (const achar *pszTargets)
 
const achar * TrimRight ()
 
const achar * TrimLeftEx (const achar *pszTargets)
 
const achar * TrimLeft ()
 
const achar * TrimEx (const achar *aszTargets)
 
const achar * Trim ()
 
const achar * Normalize ()
 
tF32 Float () const
 
tF64 Double () const
 
tI32 Long () const
 
tU32 ULong () const
 
tI64 LongLong () const
 
tU64 ULongLong () const
 
tBool Bool (tBool bDefault=eFalse) const
 
tI32 NumberArray (tF64 *pDest, int nNum, tBool bDotIsNumber, const achar *aaszSkipToFirst) const
 
tI32 NumberArray (tF32 *pDest, int nNum, tBool bDotIsNumber, const achar *aaszSkipToFirst) const
 
tI32 NumberArray (tI32 *pDest, int nNum, tBool bDotIsNumber, const achar *aaszSkipToFirst) const
 
tU32 FourCC () const
 
tVersion Version () const
 
tU32 Color () const
 
const achar * Set (tI32 lValue)
 
const achar * Set (tU32 lValue)
 
const achar * Set (tI64 lValue)
 
const achar * Set (tU64 lValue)
 
const achar * Set (tBool bValue)
 
const achar * Set (const tF64 *pSrc, int nNum, const achar *uszSeparator)
 
const achar * Set (const tF32 *pSrc, int nNum, const achar *uszSeparator)
 
const achar * Set (const tI32 *pSrc, int nNum, const achar *uszSeparator)
 
const achar * SetFourCC (tU32 lFourCC)
 
const achar * SetColor (tU32 ulColor)
 
const achar * Set (const iToString *aVal)
 
const achar * Set (const cchar *pBegin, const cchar *pEnd)
 
const achar * Set (const gchar *pBegin, const gchar *pEnd)
 
const achar * Set (const xchar *pBegin, const xchar *pEnd)
 
cString & operator<< (tI8 lVal)
 
cString & operator<< (tU8 lVal)
 
cString & operator<< (tI16 lVal)
 
cString & operator<< (tU16 lVal)
 
cString & operator<< (tI32 lVal)
 
cString & operator<< (tU32 lVal)
 
cString & operator<< (tI64 lVal)
 
cString & operator<< (tU64 lVal)
 
cString & operator<< (tF32 fVal)
 
cString & operator<< (tF64 fVal)
 
cString & operator<< (const tUUID &uuidVal)
 
cString & operator<< (const cchar *uszChar)
 
cString & operator<< (const gchar *szChar)
 
cString & operator<< (const xchar *szChar)
 
cString & operator<< (const iToString *obj)
 
static tUUID _ToUUID (const achar *szUUID, const tSize baseLen)
 
tUUID UUID () const
 
const achar * SetDouble (tF64 dValue, eDoubleToStringMode aMode=eDoubleToStringMode_ShortestDouble, tI32 aDigitsOrPrecision=15, const char *aInfinitySymbol="Infinity", const char *aNaNSymbol="NaN", char aExponentCharacter= 'e')
 

Typedef Documentation

typedef StrBreakIt<StrBreakLine> StrBreakLineIt
typedef StrBreakIt<StrBreakWord> StrBreakWordIt
typedef StrBreakIt<StrBreakSpace> StrBreakSpaceIt
typedef StrBreakIt<StrBreakChr> StrBreakChrIt
typedef StrBreakIt<StrBreakIdentifier> StrBreakIdentifierIt

Enumeration Type Documentation

enum eStrFindFlags

Str find flags.

Enumerator
eStrFindFlags_Forward 
eStrFindFlags_Reversed 
eStrFindFlags_ICmp 
eStrFindFlags_ForwardI 
eStrFindFlags_ReversedI 
enum eUCPCategory

Unicode code point general character categories.

Enumerator
eUCPCategory_Other 
eUCPCategory_Letter 
eUCPCategory_Mark 
eUCPCategory_Number 
eUCPCategory_Punctuation 
eUCPCategory_Symbol 
eUCPCategory_Separator 
enum eUCPCharType

Unicode code point particular character types.

Enumerator
eUCPCharType_Cc 

Control.

eUCPCharType_Cf 

Format.

eUCPCharType_Cn 

Unassigned.

eUCPCharType_Co 

Private use.

eUCPCharType_Cs 

Surrogate.

eUCPCharType_Ll 

Lower case letter.

eUCPCharType_Lm 

Modifier letter.

eUCPCharType_Lo 

Other letter.

eUCPCharType_Lt 

Title case letter.

eUCPCharType_Lu 

Upper case letter.

eUCPCharType_Mc 

Spacing mark.

eUCPCharType_Me 

Enclosing mark.

eUCPCharType_Mn 

Non-spacing mark.

eUCPCharType_Nd 

Decimal number.

eUCPCharType_Nl 

Letter number.

eUCPCharType_No 

Other number.

eUCPCharType_Pc 

Connector punctuation.

eUCPCharType_Pd 

Dash punctuation.

eUCPCharType_Pe 

Close punctuation.

eUCPCharType_Pf 

Final punctuation.

eUCPCharType_Pi 

Initial punctuation.

eUCPCharType_Po 

Other punctuation.

eUCPCharType_Ps 

Open punctuation.

eUCPCharType_Sc 

Currency symbol.

eUCPCharType_Sk 

Modifier symbol.

eUCPCharType_Sm 

Mathematical symbol.

eUCPCharType_So 

Other symbol.

eUCPCharType_Zl 

Line separator.

eUCPCharType_Zp 

Paragraph separator.

eUCPCharType_Zs 

Space separator.

enum eUCPScript

Unicode code point script identifications.

Enumerator
eUCPScript_Arabic 
eUCPScript_Armenian 
eUCPScript_Bengali 
eUCPScript_Bopomofo 
eUCPScript_Braille 
eUCPScript_Buginese 
eUCPScript_Buhid 
eUCPScript_Canadian_Aboriginal 
eUCPScript_Cherokee 
eUCPScript_Common 
eUCPScript_Coptic 
eUCPScript_Cypriot 
eUCPScript_Cyrillic 
eUCPScript_Deseret 
eUCPScript_Devanagari 
eUCPScript_Ethiopic 
eUCPScript_Georgian 
eUCPScript_Glagolitic 
eUCPScript_Gothic 
eUCPScript_Greek 
eUCPScript_Gujarati 
eUCPScript_Gurmukhi 
eUCPScript_Han 
eUCPScript_Hangul 
eUCPScript_Hanunoo 
eUCPScript_Hebrew 
eUCPScript_Hiragana 
eUCPScript_Inherited 
eUCPScript_Kannada 
eUCPScript_Katakana 
eUCPScript_Kharoshthi 
eUCPScript_Khmer 
eUCPScript_Lao 
eUCPScript_Latin 
eUCPScript_Limbu 
eUCPScript_Linear_B 
eUCPScript_Malayalam 
eUCPScript_Mongolian 
eUCPScript_Myanmar 
eUCPScript_New_Tai_Lue 
eUCPScript_Ogham 
eUCPScript_Old_Italic 
eUCPScript_Old_Persian 
eUCPScript_Oriya 
eUCPScript_Osmanya 
eUCPScript_Runic 
eUCPScript_Shavian 
eUCPScript_Sinhala 
eUCPScript_Syloti_Nagri 
eUCPScript_Syriac 
eUCPScript_Tagalog 
eUCPScript_Tagbanwa 
eUCPScript_Tai_Le 
eUCPScript_Tamil 
eUCPScript_Telugu 
eUCPScript_Thaana 
eUCPScript_Thai 
eUCPScript_Tibetan 
eUCPScript_Tifinagh 
eUCPScript_Ugaritic 
eUCPScript_Yi 
eUCPScript_Balinese 
eUCPScript_Cuneiform 
eUCPScript_Nko 
eUCPScript_Phags_Pa 
eUCPScript_Phoenicia 

Function Documentation

tBool ni::ToString ( const iToString *  apToString,
cString &  dest 
)
const achar* ni::ToString ( const T &  v)
tU32 ni::StrCharWidth ( tU32  c)

Get the size in bytes of the specified character.

tU32 ni::StrSequenceLength ( const achar *  s)

Get the size in bytes of the next character in the specified string.

Remarks
This function is unsafe, it won't check if the parameter is valid.
tU32 ni::StrCharDistance ( const achar *  a,
const achar *  b 
)

Get the number of characters between a and b.

Remarks
a and b must be pointers to the same string.
This function is unsafe, it won't check if the parameters are valid.
tU32 ni::StrGetNext ( const achar *  s)

Return the current character.

Remarks
This function is unsafe, it won't check if the parameter is valid.
tU32 ni::StrGetNextX ( const achar **  s)

Return the current character and set the pointer to the next.

Remarks
This function is unsafe, it won't check if the parameter is valid.
tU32 ni::StrGetPrior ( const achar *  s)

Return the previous character.

Remarks
This function is unsafe, it won't check if the parameter is valid.
tU32 ni::StrGetPriorX ( const achar **  s)

Return the previous character and set the pointer to it.

Remarks
This function is unsafe, it won't check if the parameter is valid.
tU32 ni::StrSetChar ( achar *  s,
tI32  c 
)

Set a character in the specified buffer. Buffer should be at least 4 bytes wide.

Returns
Size in bytes, of the character set.
Remarks
This function is unsafe, it won't check if the parameters are valid.
tU32 ni::StrSetCharX ( achar **  s,
tI32  c 
)

Set a character in the specified buffer and move the pointer after it. Buffer should be at least 4 bytes wide.

Returns
Size in bytes, of the character set.
Remarks
This function is unsafe, it won't check if the parameters are valid.
tBool ni::StrIsValidCodePoint ( tU32  c)

Check whether the specified code point is a valid UTF8 character.

tBool ni::StrIsValidSequence ( const achar *  b,
const achar *  e 
)

Check whether the specified sequence is a valid UTF8 string.

tBool ni::StrIsValidString ( const achar *  str)

Check whether the specified string is valid UTF8 string.

tU32 ni::StrOffset ( const achar *  s,
tI32  idx 
)

Returns the offset in bytes from the start of the string to the character at the specified index. If the index is negative, counts backward from the end of the string (-1 returns an offset to the last character).

tI32 ni::StrSetAt ( achar *  s,
tI32  index,
tI32  c 
)

Modifies the character at the specified index within the string, handling adjustments for variable width data. Returns how far the rest of the string was moved.

tI32 ni::StrGetAt ( const achar *  s,
tI32  index 
)

Get the character at the specified character index.

tI32 ni::StrInsert ( achar *  s,
tI32  idx,
tI32  c 
)

Inserts a character at the specified index within a string, sliding following data along to make room. Returns how far the data was moved.

tI32 ni::StrRemove ( achar *  s,
tI32  idx 
)

Removes the character at the specified index within the string, sliding following data back to make room. Returns how far the data was moved.

tI32 ni::StrToLower ( tI32  c)

Utf8-aware version of the ANSI tolower() function.

tI32 ni::StrToUpper ( tI32  c)

Utf8-aware version of the ANSI toupper() function.

tBool ni::StrIsUpper ( tI32  c)

Utf8-aware version of the ANSI islower() function.

tBool ni::StrIsLower ( tI32  c)

Utf8-aware version of the ANSI isupper() function.

tBool ni::StrIsAlNum ( tI32  c)

Utf8-aware version of the ANSI isalnum() function.

tBool ni::StrIsSpace ( tI32  c)

Utf8-aware version of the ANSI isspace() function.

tBool ni::StrIsDigit ( tI32  c)

Utf8-aware version of the ANSI isdigit() function.

tBool ni::StrIsXDigit ( tI32  c)

Utf8-aware version of the ANSI isxdigit() function.

tBool ni::StrIsControl ( tI32  c)

Utf8-aware version of the ANSI iscntrl() function.

tBool ni::StrIsLetter ( tI32  c)

Check whether the specified character should be considered part of a 'word'.

tBool ni::StrIsLetterDigit ( tI32  c)

Check whether the specified character is a letter or a digit.

tI32 ni::StrLen ( const achar *  s)

Returns the number of characters in the specified utf8 string.

tI32 ni::StrSize ( const achar *  s)

Returns the size of the specified string in bytes, not including the trailing zero.

tI32 ni::StrSizeZ ( const achar *  s)

Returns the size of the specified string in bytes, including the trailing zero.

achar* ni::StrZCpy ( achar *  dest,
tI32  size,
const achar *  src 
)

Enhanced Utf8-aware version of the ANSI strcpy() function that can handle the size (in bytes) of the destination string. The raw Utf8-aware version of ANSI strcpy() is defined as:

achar* ni::StrZCat ( achar *  dest,
tI32  size,
const achar *  src 
)

Enhanced Utf8-aware version of the ANSI strcat() function that can handle the size (in bytes) of the destination string. The raw Utf8-aware version of ANSI strcat() is defined as:

achar* ni::StrZNCpy ( achar *  dest,
tI32  size,
const achar *  src,
tSize  n 
)

Enhanced Utf8-aware version of the ANSI strncpy() function that can handle the size (in bytes) of the destination string. The raw Utf8-aware version of ANSI strncpy() is defined as:

achar* ni::StrZNCat ( achar *  dest,
tI32  size,
const achar *  src,
tSize  n 
)

Enhanced Utf8-aware version of the ANSI strncat() function that can handle the size (in bytes) of the destination string. The raw Utf8-aware version of ANSI strncat() is defined as:

tI32 ni::StrCmp ( const achar *  s1,
const achar *  s2 
)

Utf8-aware version of the ANSI strcmp() function.

tI32 ni::StrNCmp ( const achar *  s1,
const achar *  s2,
tSize  n 
)

Utf8-aware version of the strncmp() function.

tI32 ni::StrZCmp ( const achar *  s1,
const achar *  s2,
tSize  sz 
)

Utf8-aware version of the strncmp() function, however takes number of bytes instead of character count.

tI32 ni::StrICmp ( const achar *  s1,
const achar *  s2 
)

Utf8-aware version of the stricmp() function.

tI32 ni::StrNICmp ( const achar *  s1,
const achar *  s2,
tSize  n 
)

Utf8-aware version of the strnicmp() function.

tI32 ni::StrZICmp ( const achar *  s1,
const achar *  s2,
tSize  sz 
)

Utf8-aware version of the strnicmp() function, however takes number of bytes instead of character count.

achar* ni::StrLwr ( achar *  s)

Utf8-aware version of the strlwr() function.

achar* ni::StrUpr ( achar *  s)

Utf8-aware version of the strupr() function.

const achar* ni::StrChr ( const achar *  s,
tI32  c 
)

Utf8-aware version of the strchr() function.

const achar* ni::StrRChr ( const achar *  s,
tI32  c 
)

Utf8-aware version of the strrchr() function.

const achar* ni::StrStr ( const achar *  s1,
const achar *  s2 
)

Utf8-aware version of the strstr() function.

const achar* ni::StrRStr ( const achar *  s1,
const achar *  s2 
)

Utf8-aware version of the strrstr() function.

const achar* ni::StrPBrk ( const achar *  s,
const achar *  set 
)

Utf8-aware version of the strpbrk() function.

achar* ni::StrTok ( achar *  s,
const achar *  set,
achar **  last 
)

Utf8-aware version of the strtok() function.

Remarks
The last parameter needs to a be a pointer to a valid achar* variable. This is non-standard, but it makes StrTok thread safe by not using any global variables.
tI64 ni::StrToL ( const achar *  s,
const achar **  endp,
tI32  base 
)

Utf8-aware version of the strtol() function.

tI64 ni::StrAToL ( const achar *  s)

Utf8-aware version of the atol() function.

tU64 ni::StrToUL ( const achar *  s,
const achar **  endp,
tI32  base 
)

Utf8-aware version of the strtoul() function.

tU64 ni::StrAToUL ( const achar *  s)

Utf8-aware version of the atol() function.

tF64 ni::StrToD ( const achar *  s,
const achar **  endp 
)

Utf8-aware version of the strtod() function.

tF64 ni::StrAToF ( const achar *  s)

Utf8-aware version of the atof() function.

void ni::StrValueToHexa ( achar *  d,
tU64  value 
)

Writes the specified number value as hexadecimal characters in the destination string.

Remarks
The destination string size should be at least 8*2 bytes long.
void ni::StrBytesToHexa ( achar *  d,
tU8 *  bytes,
tU32  byteCount 
)

Writes the specified number of bytes as hexadecimal characters in the destination string.

Remarks
The destination string size should be at least byteCount*2.
tI32 ni::StrGetCommandPath ( achar *  dest,
tU32  destMaxSize,
const achar *  src,
tU32 *  apLen 
)

Get a path from a 'command line' string. Gets what is between the first quote '"' pair if present, else what is before the first space character. Returns the size in bytes of the path copied in the destination.

tSize ni::StrCCPCount ( const cchar *  acszA)

Return the number of code points in the specified UTF8 string. (equivalent to size for UTF8)

tSize ni::StrGCPCount ( const gchar *  agszA)

Return the number of code points in the specified UTF16 string. (size = num cp * sizeof(tU16))

tSize ni::StrXCPCount ( const xchar *  axszA)

Return the number of code points in the specified UTF32 string. (size = num cp * sizeof(tU32))

tBool ni::StrIsInt ( const achar *  cszStr)
tI32 ni::StrMapIndex ( const tSize  anLen,
tI32  anIndex 
)
tBool ni::StrStartsWith ( const achar *  aaszA,
const achar *  aaszB 
)
tBool ni::StrStartsWithI ( const achar *  aaszA,
const achar *  aaszB 
)
tBool ni::StrEndsWith ( const achar *  aaszA,
const achar *  aaszB 
)
tBool ni::StrEndsWithI ( const achar *  aaszA,
const achar *  aaszB 
)
achar* ni::StrZSubstr ( achar *  apOut,
const achar *  aStr,
tU32  anStrSz,
tI32  start,
tU32  size = 0xFFFF 
)
Remarks
All return and parameter values are in bytes, not character count.
achar* ni::StrZSlice ( achar *  apOut,
const achar *  aStr,
tU32  anStrSz,
tI32  start,
tI32  end = 0xFFFF 
)
Remarks
All return and parameter values are in bytes, not character count.
achar* ni::StrZMid ( achar *  apOut,
const achar *  aStr,
tU32  anStrSz,
tU32  anFirst,
tU32  size = 0xFFFF 
)
Remarks
All return and parameter values are in bytes, not character count.
achar* ni::StrZLeft ( achar *  apOut,
const achar *  aStr,
tU32  anStrSz,
tU32  anSize 
)
Remarks
All return and parameter values are in bytes, not character count.
achar* ni::StrZRight ( achar *  apOut,
const achar *  aStr,
tU32  anStrSz,
tU32  anSize 
)
Remarks
All return and parameter values are in bytes, not character count.
tI32 ni::StrZFindEx ( tU32  anFindFlags,
const achar *  aStr,
tU32  anStrSz,
const achar *  aToFind,
tU32  anToFindSz,
tI32  anStart = eInvalidHandle 
)
Remarks
All return and parameter values are in bytes, not character count.
tI32 ni::StrZFindChar ( const achar *  aStr,
tU32  anStrSz,
const tU32  aChar,
tI32  anStart = 0 
)
Remarks
All return and parameter values are in bytes, not character count.
tI32 ni::StrZRFindChar ( const achar *  aStr,
tU32  anStrSz,
const tU32  aChar,
tI32  anStart = 0x7fffffff 
)
Remarks
All return and parameter values are in bytes, not character count.
tI32 ni::StrZAfterPos ( tU32  anFindFlags,
const achar *  aStr,
tU32  anStrSz,
const achar *  aToFind,
tU32  anToFindSz 
)
Remarks
All return and parameter values are in bytes, not character count.
achar* ni::StrZAfterEx ( tU32  anFindFlags,
achar *  apOut,
const achar *  aStr,
tU32  anStrSz,
const achar *  aToFind,
tU32  anToFindSz 
)
Remarks
All return and parameter values are in bytes, not character count.
tI32 ni::StrZBeforePos ( tU32  anFindFlags,
const achar *  aStr,
tU32  anStrSz,
const achar *  aToFind,
tU32  anToFindSz 
)
Remarks
All return and parameter values are in bytes, not character count.
achar* ni::StrZBeforeEx ( tU32  anFindFlags,
achar *  apOut,
const achar *  aStr,
tU32  anStrSz,
const achar *  aToFind,
tU32  anToFindSz 
)
Remarks
All return and parameter values are in bytes, not character count.
achar* ni::StrPutPathSep ( achar *  filename)
achar* ni::StrMakeStdPath ( achar *  path)
achar* ni::StrFixPath ( achar *  dest,
const achar *  path,
int  size 
)
tBool ni::StrIsAbsolutePath ( const achar *  path)
achar* ni::StrSep ( achar **  stringp,
const achar *  delim 
)

Get next token from string *appString, where tokens are possibly-empty strings separated by characters from aaszDelim.

Writes NULs into the string at *appString to end tokens. aaszDelim need not remain constant from call to call. On return, *appString points past the last NUL written (if there might be further tokens), or is NULL (if there are definitely no more tokens).

If *appString is NULL, StrSep returns NULL

Example:

  char *token, *string, *tofree;
  tofree = string = strdup("value;;test;etc");
  while ((token = strsep(&string, ";")) != NULL)
    printf("token=%s\n", token);
  free(tofree);
achar* ni::StrSepQuoted ( achar **  stringp,
const achar *  delim 
)

Same as StrSep, except that it always considers quoted strings as one token and handles "" and " quote escaping.

tI32 ni::StrFindProtocol ( const achar *  aURL)

Returns the byte index of the ':' character of a :// protocol definition.

const achar* ni::StrHasText ( const achar *  aText)

Return the first non empty character in the string. NULL if there's not text in the string.

tU32 ni::StrGetUCPProps ( tU32  cp,
tU32 *  apCharType,
tU32 *  apScript 
)

Get the unicode properties of the specified code point.

Parameters
cpis the code point (character)
apCharTypeif not null, will contain the cp's character type (eUCPCharType)
apScriptif not null, will contain the cp's character script (eUCPScript)
Returns
the cp's category (eUCPCategory)
ni::tI32 ni::StrCharItFindFirstOf ( ni::StrCharIt aIt,
const ni::tU32 aToFind,
const ni::tU32  aNumToFind,
ni::tU32 aCharFound 
)
ni::tI32 ni::StrCharItRFindFirstOf ( ni::StrCharIt aIt,
const ni::tU32 aToFind,
const ni::tU32  aNumToFind,
ni::tU32 aCharFound 
)
tBool IsEmpty ( ) const
tBool IsNotEmpty ( ) const
const achar * Remove ( tU32  lPos = eInvalidHandle)
cString GetWithoutBEQuote ( ) const
cString StripQuotes ( ) const
const achar * TrimRightEx ( const achar pszTargets)
const achar * TrimRight ( )
const achar * TrimLeftEx ( const achar pszTargets)
const achar * TrimLeft ( )
const achar * TrimEx ( const achar aszTargets)
const achar * Trim ( )
const achar * Normalize ( )
tF32 Float ( ) const
tF64 Double ( ) const
tI32 Long ( ) const
tU32 ULong ( ) const
tI64 LongLong ( ) const
tU64 ULongLong ( ) const
tBool Bool ( tBool  bDefault = eFalse) const
tI32 NumberArray ( tF64 pDest,
int  nNum,
tBool  bDotIsNumber,
const achar aaszSkipToFirst 
) const
tI32 NumberArray ( tF32 pDest,
int  nNum,
tBool  bDotIsNumber,
const achar aaszSkipToFirst 
) const
tI32 NumberArray ( tI32 pDest,
int  nNum,
tBool  bDotIsNumber,
const achar aaszSkipToFirst 
) const
tU32 FourCC ( ) const
tVersion Version ( ) const
tU32 Color ( ) const
const achar * Set ( tI32  lValue)
const achar * Set ( tU32  lValue)
const achar * Set ( tI64  lValue)
const achar * Set ( tU64  lValue)
const achar * Set ( tBool  bValue)
const achar * Set ( const tF64 pSrc,
int  nNum,
const achar uszSeparator 
)
const achar * Set ( const tF32 pSrc,
int  nNum,
const achar uszSeparator 
)
const achar * Set ( const tI32 pSrc,
int  nNum,
const achar uszSeparator 
)
const achar * SetFourCC ( tU32  lFourCC)
const achar * SetColor ( tU32  ulColor)
const achar * Set ( const iToString aVal)
const achar * Set ( const cchar pBegin,
const cchar pEnd 
)
const achar * Set ( const gchar pBegin,
const gchar pEnd 
)
const achar * Set ( const xchar pBegin,
const xchar pEnd 
)
cString & operator<< ( tI8  lVal)
cString & operator<< ( tU8  lVal)
cString & operator<< ( tI16  lVal)
cString & operator<< ( tU16  lVal)
cString & operator<< ( tI32  lVal)
cString & operator<< ( tU32  lVal)
cString & operator<< ( tI64  lVal)
cString & operator<< ( tU64  lVal)
cString & operator<< ( tF32  fVal)
cString & operator<< ( tF64  fVal)
cString & operator<< ( const tUUID uuidVal)
cString & operator<< ( const cchar uszChar)
cString & operator<< ( const gchar szChar)
cString & operator<< ( const xchar szChar)
cString & operator<< ( const iToString obj)
tUUID _ToUUID ( const achar szUUID,
const tSize  baseLen 
)
static
tUUID UUID ( ) const
const achar * SetDouble ( tF64  dValue,
eDoubleToStringMode  aMode = eDoubleToStringMode_ShortestDouble,
tI32  aDigitsOrPrecision = 15,
const char *  aInfinitySymbol = "Infinity",
const char *  aNaNSymbol = "NaN",
char  aExponentCharacter = 'e' 
)