ICU 57.1 57.1
ustring.h
Go to the documentation of this file.
1/*
2**********************************************************************
3* Copyright (C) 1998-2014, International Business Machines
4* Corporation and others. All Rights Reserved.
5**********************************************************************
6*
7* File ustring.h
8*
9* Modification History:
10*
11* Date Name Description
12* 12/07/98 bertrand Creation.
13******************************************************************************
14*/
15
16#ifndef USTRING_H
17#define USTRING_H
18
19#include "unicode/utypes.h"
20#include "unicode/putil.h"
21#include "unicode/uiter.h"
22
28#ifndef UBRK_TYPEDEF_UBREAK_ITERATOR
29# define UBRK_TYPEDEF_UBREAK_ITERATOR
32#endif
33
90U_STABLE int32_t U_EXPORT2
91u_strlen(const UChar *s);
107U_STABLE int32_t U_EXPORT2
108u_countChar32(const UChar *s, int32_t length);
109
129u_strHasMoreChar32Than(const UChar *s, int32_t length, int32_t number);
130
143 const UChar *src);
144
161 const UChar *src,
162 int32_t n);
163
185u_strstr(const UChar *s, const UChar *substring);
186
209u_strFindFirst(const UChar *s, int32_t length, const UChar *substring, int32_t subLength);
210
229u_strchr(const UChar *s, UChar c);
230
250
272u_strrstr(const UChar *s, const UChar *substring);
273
296u_strFindLast(const UChar *s, int32_t length, const UChar *substring, int32_t subLength);
297
316u_strrchr(const UChar *s, UChar c);
317
337
351u_strpbrk(const UChar *string, const UChar *matchSet);
352
366U_STABLE int32_t U_EXPORT2
367u_strcspn(const UChar *string, const UChar *matchSet);
368
382U_STABLE int32_t U_EXPORT2
383u_strspn(const UChar *string, const UChar *matchSet);
384
412 const UChar *delim,
413 UChar **saveState);
414
425U_STABLE int32_t U_EXPORT2
427 const UChar *s2);
428
440U_STABLE int32_t U_EXPORT2
442
470U_STABLE int32_t U_EXPORT2
471u_strCompare(const UChar *s1, int32_t length1,
472 const UChar *s2, int32_t length2,
474
495U_STABLE int32_t U_EXPORT2
497
498#ifndef U_COMPARE_CODE_POINT_ORDER
499/* see also unistr.h and unorm.h */
505#define U_COMPARE_CODE_POINT_ORDER 0x8000
506#endif
507
548U_STABLE int32_t U_EXPORT2
550 const UChar *s2, int32_t length2,
551 uint32_t options,
553
566U_STABLE int32_t U_EXPORT2
568 const UChar *ucs2,
569 int32_t n);
570
584U_STABLE int32_t U_EXPORT2
585u_strncmpCodePointOrder(const UChar *s1, const UChar *s2, int32_t n);
586
606U_STABLE int32_t U_EXPORT2
607u_strcasecmp(const UChar *s1, const UChar *s2, uint32_t options);
608
630U_STABLE int32_t U_EXPORT2
631u_strncasecmp(const UChar *s1, const UChar *s2, int32_t n, uint32_t options);
632
654U_STABLE int32_t U_EXPORT2
655u_memcasecmp(const UChar *s1, const UChar *s2, int32_t length, uint32_t options);
656
667 const UChar *src);
668
682 const UChar *src,
683 int32_t n);
684
685#if !UCONFIG_NO_CONVERSION
686
698 const char *src );
699
713 const char *src,
714 int32_t n);
715
727 const UChar *src );
728
742 const UChar *src,
743 int32_t n );
744
745#endif
746
756u_memcpy(UChar *dest, const UChar *src, int32_t count);
757
767u_memmove(UChar *dest, const UChar *src, int32_t count);
768
779u_memset(UChar *dest, UChar c, int32_t count);
780
792U_STABLE int32_t U_EXPORT2
793u_memcmp(const UChar *buf1, const UChar *buf2, int32_t count);
794
808U_STABLE int32_t U_EXPORT2
809u_memcmpCodePointOrder(const UChar *s1, const UChar *s2, int32_t count);
810
829u_memchr(const UChar *s, UChar c, int32_t count);
830
849u_memchr32(const UChar *s, UChar32 c, int32_t count);
850
869u_memrchr(const UChar *s, UChar c, int32_t count);
870
889u_memrchr32(const UChar *s, UChar32 c, int32_t count);
890
941#if defined(U_DECLARE_UTF16)
942# define U_STRING_DECL(var, cs, length) static const UChar *var=(const UChar *)U_DECLARE_UTF16(cs)
944# define U_STRING_INIT(var, cs, length)
945#elif U_SIZEOF_WCHAR_T==U_SIZEOF_UCHAR && (U_CHARSET_FAMILY==U_ASCII_FAMILY || (U_SIZEOF_UCHAR == 2 && defined(U_WCHAR_IS_UTF16)))
946# define U_STRING_DECL(var, cs, length) static const UChar var[(length)+1]=L ## cs
948# define U_STRING_INIT(var, cs, length)
949#elif U_SIZEOF_UCHAR==1 && U_CHARSET_FAMILY==U_ASCII_FAMILY
950# define U_STRING_DECL(var, cs, length) static const UChar var[(length)+1]=cs
952# define U_STRING_INIT(var, cs, length)
953#else
954# define U_STRING_DECL(var, cs, length) static UChar var[(length)+1]
956# define U_STRING_INIT(var, cs, length) u_charsToUChars(cs, var, length+1)
957#endif
958
1006U_STABLE int32_t U_EXPORT2
1007u_unescape(const char *src,
1008 UChar *dest, int32_t destCapacity);
1009
1023typedef UChar (U_CALLCONV *UNESCAPE_CHAR_AT)(int32_t offset, void *context);
1025
1056 int32_t *offset,
1057 int32_t length,
1058 void *context);
1059
1080U_STABLE int32_t U_EXPORT2
1082 const UChar *src, int32_t srcLength,
1083 const char *locale,
1085
1106U_STABLE int32_t U_EXPORT2
1108 const UChar *src, int32_t srcLength,
1109 const char *locale,
1111
1112#if !UCONFIG_NO_BREAK_ITERATION
1113
1152U_STABLE int32_t U_EXPORT2
1154 const UChar *src, int32_t srcLength,
1156 const char *locale,
1158
1159#endif
1160
1185U_STABLE int32_t U_EXPORT2
1187 const UChar *src, int32_t srcLength,
1188 uint32_t options,
1190
1191#if defined(U_WCHAR_IS_UTF16) || defined(U_WCHAR_IS_UTF32) || !UCONFIG_NO_CONVERSION
1214U_STABLE wchar_t* U_EXPORT2
1216 int32_t destCapacity,
1217 int32_t *pDestLength,
1218 const UChar *src,
1219 int32_t srcLength,
1245 int32_t destCapacity,
1246 int32_t *pDestLength,
1247 const wchar_t *src,
1248 int32_t srcLength,
1250#endif /* defined(U_WCHAR_IS_UTF16) || defined(U_WCHAR_IS_UTF32) || !UCONFIG_NO_CONVERSION */
1251
1274U_STABLE char* U_EXPORT2
1276 int32_t destCapacity,
1277 int32_t *pDestLength,
1278 const UChar *src,
1279 int32_t srcLength,
1281
1306 int32_t destCapacity,
1307 int32_t *pDestLength,
1308 const char *src,
1309 int32_t srcLength,
1311
1347U_STABLE char* U_EXPORT2
1349 int32_t destCapacity,
1350 int32_t *pDestLength,
1351 const UChar *src,
1352 int32_t srcLength,
1355
1394 int32_t destCapacity,
1395 int32_t *pDestLength,
1396 const char *src,
1397 int32_t srcLength,
1400
1454 int32_t destCapacity,
1455 int32_t *pDestLength,
1456 const char *src,
1457 int32_t srcLength,
1459
1484 int32_t destCapacity,
1485 int32_t *pDestLength,
1486 const UChar *src,
1487 int32_t srcLength,
1489
1514 int32_t destCapacity,
1515 int32_t *pDestLength,
1516 const UChar32 *src,
1517 int32_t srcLength,
1519
1557 int32_t destCapacity,
1558 int32_t *pDestLength,
1559 const UChar *src,
1560 int32_t srcLength,
1563
1601 int32_t destCapacity,
1602 int32_t *pDestLength,
1603 const UChar32 *src,
1604 int32_t srcLength,
1607
1640U_STABLE char* U_EXPORT2
1642 char *dest,
1643 int32_t destCapacity,
1644 int32_t *pDestLength,
1645 const UChar *src,
1646 int32_t srcLength,
1648
1692 UChar *dest,
1693 int32_t destCapacity,
1694 int32_t *pDestLength,
1695 const char *src,
1696 int32_t srcLength,
1699
1700#endif
"Smart pointer" base class; do not use directly: use LocalPointer etc.
#define U_CALLCONV
Similar to U_CDECL_BEGIN/U_CDECL_END, this qualifier is necessary in callback function typedefs to ma...
Definition platform.h:849
C API: Platform Utilities.
C API for code unit iteration.
Definition uiter.h:339
struct UBreakIterator UBreakIterator
Opaque type representing an ICU Break iterator object.
Definition ubrk.h:26
C API: Unicode Character Iteration.
#define U_CDECL_END
This is used to end a declaration of a library private ICU C API.
Definition umachine.h:83
int8_t UBool
The ICU boolean type.
Definition umachine.h:234
uint16_t UChar
Define UChar to be UCHAR_TYPE, if that is #defined (for example, to char16_t), or wchar_t if that is ...
Definition umachine.h:312
#define U_CDECL_BEGIN
This is used to begin a declaration of a library private ICU C API.
Definition umachine.h:82
#define U_STABLE
This is used to declare a function as a stable public ICU C API.
Definition umachine.h:109
UChar * u_strFromJavaModifiedUTF8WithSub(UChar *dest, int32_t destCapacity, int32_t *pDestLength, const char *src, int32_t srcLength, UChar32 subchar, int32_t *pNumSubstitutions, UErrorCode *pErrorCode)
Convert a Java Modified UTF-8 string to a 16-bit Unicode string.
char * u_austrncpy(char *dst, const UChar *src, int32_t n)
Copy ustring to a byte string encoded in the default codepage.
int32_t u_memcasecmp(const UChar *s1, const UChar *s2, int32_t length, uint32_t options)
Compare two strings case-insensitively using full case folding.
char * u_austrcpy(char *dst, const UChar *src)
Copy ustring to a byte string encoded in the default codepage.
int32_t u_strToUpper(UChar *dest, int32_t destCapacity, const UChar *src, int32_t srcLength, const char *locale, UErrorCode *pErrorCode)
Uppercase the characters in a string.
char * u_strToUTF8(char *dest, int32_t destCapacity, int32_t *pDestLength, const UChar *src, int32_t srcLength, UErrorCode *pErrorCode)
Convert a UTF-16 string to UTF-8.
UChar * u_memrchr32(const UChar *s, UChar32 c, int32_t count)
Find the last occurrence of a code point in a string.
UChar * u_strFindLast(const UChar *s, int32_t length, const UChar *substring, int32_t subLength)
Find the last occurrence of a substring in a string.
UChar * u_strncpy(UChar *dst, const UChar *src, int32_t n)
Copy a ustring.
UChar * u_memmove(UChar *dest, const UChar *src, int32_t count)
Synonym for memmove(), but with UChars only.
UChar * u_strrchr32(const UChar *s, UChar32 c)
Find the last occurrence of a code point in a string.
UChar * u_strncat(UChar *dst, const UChar *src, int32_t n)
Concatenate two ustrings.
UChar * u_strstr(const UChar *s, const UChar *substring)
Find the first occurrence of a substring in a string.
int32_t u_strcspn(const UChar *string, const UChar *matchSet)
Returns the number of consecutive characters in string, beginning with the first, that do not occur s...
UChar * u_memchr(const UChar *s, UChar c, int32_t count)
Find the first occurrence of a BMP code point in a string.
UChar * u_strFromUTF8(UChar *dest, int32_t destCapacity, int32_t *pDestLength, const char *src, int32_t srcLength, UErrorCode *pErrorCode)
Convert a UTF-8 string to UTF-16.
int32_t u_strCompare(const UChar *s1, int32_t length1, const UChar *s2, int32_t length2, UBool codePointOrder)
Compare two Unicode strings (binary order).
UChar(* UNESCAPE_CHAR_AT)(int32_t offset, void *context)
Callback function for u_unescapeAt() that returns a character of the source text given an offset and ...
Definition ustring.h:1023
int32_t u_strCaseCompare(const UChar *s1, int32_t length1, const UChar *s2, int32_t length2, uint32_t options, UErrorCode *pErrorCode)
Compare two strings case-insensitively using full case folding.
UChar * u_uastrncpy(UChar *dst, const char *src, int32_t n)
Copy a byte string encoded in the default codepage to a ustring.
UChar * u_strFindFirst(const UChar *s, int32_t length, const UChar *substring, int32_t subLength)
Find the first occurrence of a substring in a string.
char * u_strToJavaModifiedUTF8(char *dest, int32_t destCapacity, int32_t *pDestLength, const UChar *src, int32_t srcLength, UErrorCode *pErrorCode)
Convert a 16-bit Unicode string to Java Modified UTF-8.
UChar * u_strFromWCS(UChar *dest, int32_t destCapacity, int32_t *pDestLength, const wchar_t *src, int32_t srcLength, UErrorCode *pErrorCode)
Convert a wchar_t string to UTF-16.
int32_t u_memcmpCodePointOrder(const UChar *s1, const UChar *s2, int32_t count)
Compare two Unicode strings in code point order.
int32_t u_strncmp(const UChar *ucs1, const UChar *ucs2, int32_t n)
Compare two ustrings for bitwise equality.
UChar * u_strrchr(const UChar *s, UChar c)
Find the last occurrence of a BMP code point in a string.
char * u_strToUTF8WithSub(char *dest, int32_t destCapacity, int32_t *pDestLength, const UChar *src, int32_t srcLength, UChar32 subchar, int32_t *pNumSubstitutions, UErrorCode *pErrorCode)
Convert a UTF-16 string to UTF-8.
UChar * u_memcpy(UChar *dest, const UChar *src, int32_t count)
Synonym for memcpy(), but with UChars only.
int32_t u_unescape(const char *src, UChar *dest, int32_t destCapacity)
Unescape a string of characters and write the resulting Unicode characters to the destination buffer.
UChar * u_strFromUTF8Lenient(UChar *dest, int32_t destCapacity, int32_t *pDestLength, const char *src, int32_t srcLength, UErrorCode *pErrorCode)
Convert a UTF-8 string to UTF-16.
UChar * u_memset(UChar *dest, UChar c, int32_t count)
Initialize count characters of dest to c.
UChar32 * u_strToUTF32(UChar32 *dest, int32_t destCapacity, int32_t *pDestLength, const UChar *src, int32_t srcLength, UErrorCode *pErrorCode)
Convert a UTF-16 string to UTF-32.
UChar * u_strrstr(const UChar *s, const UChar *substring)
Find the last occurrence of a substring in a string.
int32_t u_strToTitle(UChar *dest, int32_t destCapacity, const UChar *src, int32_t srcLength, UBreakIterator *titleIter, const char *locale, UErrorCode *pErrorCode)
Titlecase a string.
UChar * u_strpbrk(const UChar *string, const UChar *matchSet)
Locates the first occurrence in the string string of any of the characters in the string matchSet.
wchar_t * u_strToWCS(wchar_t *dest, int32_t destCapacity, int32_t *pDestLength, const UChar *src, int32_t srcLength, UErrorCode *pErrorCode)
Convert a UTF-16 string to a wchar_t string.
UChar * u_strFromUTF32(UChar *dest, int32_t destCapacity, int32_t *pDestLength, const UChar32 *src, int32_t srcLength, UErrorCode *pErrorCode)
Convert a UTF-32 string to UTF-16.
int32_t u_memcmp(const UChar *buf1, const UChar *buf2, int32_t count)
Compare the first count UChars of each buffer.
int32_t u_strcasecmp(const UChar *s1, const UChar *s2, uint32_t options)
Compare two strings case-insensitively using full case folding.
int32_t u_strcmpCodePointOrder(const UChar *s1, const UChar *s2)
Compare two Unicode strings in code point order.
UChar * u_strcpy(UChar *dst, const UChar *src)
Copy a ustring.
UBool u_strHasMoreChar32Than(const UChar *s, int32_t length, int32_t number)
Check if the string contains more Unicode code points than a certain number.
int32_t u_strFoldCase(UChar *dest, int32_t destCapacity, const UChar *src, int32_t srcLength, uint32_t options, UErrorCode *pErrorCode)
Case-folds the characters in a string.
UChar32 u_unescapeAt(UNESCAPE_CHAR_AT charAt, int32_t *offset, int32_t length, void *context)
Unescape a single sequence.
UChar * u_strchr(const UChar *s, UChar c)
Find the first occurrence of a BMP code point in a string.
int32_t u_strncasecmp(const UChar *s1, const UChar *s2, int32_t n, uint32_t options)
Compare two strings case-insensitively using full case folding.
UChar * u_memchr32(const UChar *s, UChar32 c, int32_t count)
Find the first occurrence of a code point in a string.
int32_t u_strspn(const UChar *string, const UChar *matchSet)
Returns the number of consecutive characters in string, beginning with the first, that occur somewher...
int32_t u_strcmp(const UChar *s1, const UChar *s2)
Compare two Unicode strings for bitwise equality (code unit order).
int32_t u_strlen(const UChar *s)
Determine the length of an array of UChar.
UChar32 * u_strToUTF32WithSub(UChar32 *dest, int32_t destCapacity, int32_t *pDestLength, const UChar *src, int32_t srcLength, UChar32 subchar, int32_t *pNumSubstitutions, UErrorCode *pErrorCode)
Convert a UTF-16 string to UTF-32.
UChar * u_strFromUTF8WithSub(UChar *dest, int32_t destCapacity, int32_t *pDestLength, const char *src, int32_t srcLength, UChar32 subchar, int32_t *pNumSubstitutions, UErrorCode *pErrorCode)
Convert a UTF-8 string to UTF-16.
UChar * u_uastrcpy(UChar *dst, const char *src)
Copy a byte string encoded in the default codepage to a ustring.
int32_t u_strncmpCodePointOrder(const UChar *s1, const UChar *s2, int32_t n)
Compare two Unicode strings in code point order.
UChar * u_strcat(UChar *dst, const UChar *src)
Concatenate two ustrings.
UChar * u_strtok_r(UChar *src, const UChar *delim, UChar **saveState)
The string tokenizer API allows an application to break a string into tokens.
int32_t u_strToLower(UChar *dest, int32_t destCapacity, const UChar *src, int32_t srcLength, const char *locale, UErrorCode *pErrorCode)
Lowercase the characters in a string.
int32_t u_countChar32(const UChar *s, int32_t length)
Count Unicode code points in the length UChar code units of the string.
int32_t u_strCompareIter(UCharIterator *iter1, UCharIterator *iter2, UBool codePointOrder)
Compare two Unicode strings (binary order) as presented by UCharIterator objects.
UChar * u_strchr32(const UChar *s, UChar32 c)
Find the first occurrence of a code point in a string.
UChar * u_memrchr(const UChar *s, UChar c, int32_t count)
Find the last occurrence of a BMP code point in a string.
UChar * u_strFromUTF32WithSub(UChar *dest, int32_t destCapacity, int32_t *pDestLength, const UChar32 *src, int32_t srcLength, UChar32 subchar, int32_t *pNumSubstitutions, UErrorCode *pErrorCode)
Convert a UTF-32 string to UTF-16.
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers,...
Definition utypes.h:476