|
iChar | upper_Char (iChar) |
|
iChar | lower_Char (iChar) |
|
iBool | isSpace_Char (iChar) |
|
iBool | isAlpha_Char (iChar) |
|
iBool | isNumeric_Char (iChar) |
|
iBool | isAlphaNumeric_Char (iChar) |
|
iBool | isPunct_Char (iChar) |
|
const char * | script_Char (iChar) |
|
int | width_Char (iChar) |
|
iString * | new_String (void) |
|
void | delete_String (iString *) |
|
void | init_String (iString *) |
|
void | deinit_String (iString *) |
|
void | serialize_String (const iString *, iStream *) |
|
void | deserialize_String (iString *, iStream *) |
|
iString * | newCStr_String (const char *utf8CStr) |
|
iString * | newCStrN_String (const char *utf8CStr, size_t n) |
|
iString * | newUtf16_String (const uint16_t *utf16Str) |
|
iString * | newUtf16N_String (const uint16_t *utf16Str, size_t n) |
|
iString * | newUnicode_String (const iChar *ucs) |
|
iString * | newUnicodeN_String (const iChar *ucs, size_t n) |
|
iString * | newLocalCStr_String (const char *localCStr) |
|
iString * | newLocalCStrN_String (const char *localCStr, size_t n) |
|
iString * | newBlock_String (const iBlock *utf8Data) |
|
iString * | newFormat_String (const char *format,...) |
|
iString * | copy_String (const iString *) |
|
iString * | collectNewFormat_String (const char *format,...) |
|
void | initCStr_String (iString *, const char *utf8CStr) |
|
void | initCStrN_String (iString *, const char *utf8CStr, size_t n) |
|
void | initUtf16_String (iString *, const uint16_t *utf16Str) |
|
void | initUtf16N_String (iString *, const uint16_t *utf16Str, size_t n) |
|
void | initUnicode_String (iString *, const iChar *ucs) |
|
void | initUnicodeN_String (iString *, const iChar *ucs, size_t n) |
|
void | initLocalCStr_String (iString *, const char *localCStr) |
|
void | initLocalCStrN_String (iString *, const char *localCStr, size_t n) |
|
void | initBlock_String (iString *, const iBlock *chars) |
|
void | initBlockEncoding_String (iString *, const iBlock *chars, const char *encoding) |
|
void | initCopy_String (iString *, const iString *other) |
|
const char * | cstr_String (const iString *) |
|
size_t | length_String (const iString *) |
|
size_t | size_String (const iString *) |
|
iString * | mid_String (const iString *, size_t charStartPos, size_t charCount) |
|
iString * | upper_String (const iString *) |
|
iString * | upperLang_String (const iString *, const char *langCode) |
|
iString * | lower_String (const iString *) |
|
iString * | lowerLang_String (const iString *, const char *langCode) |
|
iStringList * | split_String (const iString *, const char *separator) |
|
iString * | concat_String (const iString *, const iString *other) |
|
iString * | concatCStr_String (const iString *, const char *other) |
|
iChar | first_String (const iString *) |
|
iChar | last_String (const iString *) |
|
iBlock * | toLocal_String (const iString *) |
|
iBlock * | toUtf16_String (const iString *) |
|
iBlock * | toUnicode_String (const iString *) |
|
iString * | urlEncode_String (const iString *) |
|
iString * | urlDecode_String (const iString *) |
|
iString * | urlEncodeExclude_String (const iString *, const char *excluded) |
|
iString * | urlDecodeExclude_String (const iString *, const char *excluded) |
|
iString * | maybeUrlEncodeExclude_String (const iString *, const char *excluded) |
|
iString * | maybeUrlDecodeExclude_String (const iString *, const char *excluded) |
|
int | cmpSc_String (const iString *, const char *cstr, const iStringComparison *) |
|
int | cmpNSc_String (const iString *, const char *cstr, size_t n, const iStringComparison *) |
|
iBool | startsWithSc_String (const iString *, const char *cstr, const iStringComparison *) |
|
iBool | endsWithSc_String (const iString *, const char *cstr, const iStringComparison *) |
|
size_t | indexOf_String (const iString *, iChar ch) |
|
size_t | indexOfCStr_String (const iString *, const char *cstr) |
|
size_t | indexOfCStrFrom_String (const iString *, const char *cstr, size_t from) |
|
size_t | indexOfCStrSc_String (const iString *, const char *cstr, const iStringComparison *) |
|
size_t | indexOfCStrFromSc_String (const iString *, const char *cstr, size_t from, const iStringComparison *) |
|
size_t | lastIndexOf_String (const iString *, iChar ch) |
|
size_t | lastIndexOfCStr_String (const iString *, const char *cstr) |
|
void | set_String (iString *, const iString *other) |
|
void | setCStr_String (iString *, const char *cstr) |
|
void | setCStrN_String (iString *, const char *cstr, size_t n) |
|
void | setBlock_String (iString *, const iBlock *block) |
|
void | format_String (iString *, const char *format,...) |
|
void | append_String (iString *, const iString *other) |
|
void | appendCStr_String (iString *, const char *cstr) |
|
void | appendCStrN_String (iString *, const char *cstr, size_t size) |
|
void | appendChar_String (iString *, iChar ch) |
|
void | appendRange_String (iString *, const iRangecc range) |
|
void | appendFormat_String (iString *, const char *format,...) |
|
void | prepend_String (iString *, const iString *other) |
|
void | prependChar_String (iString *, iChar ch) |
|
void | prependCStr_String (iString *, const char *cstr) |
|
void | clear_String (iString *) |
|
void | truncate_String (iString *, size_t charCount) |
|
void | removeEnd_String (iString *, size_t charCount) |
|
void | trimStart_String (iString *) |
|
void | trimEnd_String (iString *) |
|
void | trim_String (iString *) |
|
iString * | trimmed_String (const iString *) |
|
void | replace_String (iString *, const char *src, const char *dst) |
|
void | normalize_String (iString *) |
|
int | toInt_String (const iString *) |
|
float | toFloat_String (const iString *) |
|
double | toDouble_String (const iString *) |
|
iString * | quote_String (const iString *, iBool numericUnicode) |
|
iString * | unquote_String (const iString *) |
|
iString * | unquoteDelim_String (const iString *, iChar delim) |
|
void | setLocaleCharSet_String (const char *charSet) |
|
const char * | format_CStr (const char *format,...) |
|
const char * | skipSpace_CStr (const char *) |
|
const char * | cstr_Rangecc (iRangecc) |
|
const iString * | string_Rangecc (iRangecc) |
|
iBool | isUtf8_Rangecc (iRangecc) |
|
size_t | length_Rangecc (iRangecc) |
|
int | cmpCStrSc_Rangecc (iRangecc, const char *cstr, const iStringComparison *) |
|
int | cmpCStrNSc_Rangecc (iRangecc, const char *cstr, size_t n, const iStringComparison *) |
|
iBool | startsWithSc_Rangecc (iRangecc, const char *cstr, const iStringComparison *) |
|
iBool | endsWithSc_Rangecc (iRangecc, const char *cstr, const iStringComparison *) |
|
iBlock * | toLocal_Rangecc (iRangecc) |
|
iStringList * | split_Rangecc (iRangecc, const char *separator) |
|
void | trimStart_Rangecc (iRangecc *) |
|
void | trimEnd_Rangecc (iRangecc *) |
|
void | trim_Rangecc (iRangecc *) |
|
size_t | lastIndexOfCStr_Rangecc (iRangecc, const char *cstr) |
|
iBool | nextSplit_Rangecc (iRangecc, const char *separator, iRangecc *range) |
|
const char * | findAscii_Rangecc (iRangecc, char ch) |
|
iString * | punyEncode_Rangecc (iRangecc) |
|
iString * | punyDecode_Rangecc (iRangecc) |
|
iStringList * | split_CStr (const char *cstr, const char *separator) |
|
void | init_MultibyteChar (iMultibyteChar *d, iChar ch) |
|
int | decodeBytes_MultibyteChar (const char *bytes, const char *end, iChar *ch_out) |
|
int | decodePrecedingBytes_MultibyteChar (const char *bytes, const char *start, iChar *ch_out) |
|
const char * | cstrLocal_Char (iChar ch) |
|
int | iCmpStr (const char *a, const char *b) |
|
int | iCmpStrN (const char *a, const char *b, size_t n) |
|
int | iCmpStrRange (iRangecc, const char *cstr) |
|
int | iCmpStrCase (const char *a, const char *b) |
|
int | iCmpStrNCase (const char *a, const char *b, size_t len) |
|
char * | iDupStr (const char *) |
|
char * | iStrStrN (const char *, const char *, size_t) |
|
|
void | init_StringConstIterator (iStringConstIterator *, const iString *) |
|
void | next_StringConstIterator (iStringConstIterator *) |
|
void | init_StringReverseConstIterator (iStringReverseConstIterator *, const iString *) |
|
void | next_StringReverseConstIterator (iStringReverseConstIterator *) |
|
UTF-8 string with copy-on-write semantics.
String is derived from Block, and contains text with multibyte characters. When iterating a string, the multibyte characters are converted to UTF-32 code points.
String uses copy-on-write semantics (thanks to Block), so making copies is very efficient. Conversions between String and Block are also trivial, and can be done without duplicating the content. In fact, a pointer to a Block can be simply casted to a String pointer and vice versa.
- Authors
- Copyright (c) 2017 Jaakko Keränen jaakk.nosp@m.o.ke.nosp@m.ranen.nosp@m.@iki.nosp@m..fi
- License
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.