ICU4C 79
Loading...
Searching...
No Matches
ustring.h
Go to the documentation of this file.
1// © 2016 and later: Unicode, Inc. and others.
2// License & terms of use: http://www.unicode.org/copyright.html
3/*
4**********************************************************************
5* Copyright (C) 1998-2014, International Business Machines
6* Corporation and others. All Rights Reserved.
7**********************************************************************
8*
9* File ustring.h
10*
11* Modification History:
12*
13* Date Name Description
14* 12/07/98 bertrand Creation.
15******************************************************************************
16*/
17
18#ifndef USTRING_H
19#define USTRING_H
20
21#include "unicode/utypes.h"
22#include "unicode/putil.h"
23#include "unicode/uiter.h"
24
29
30#ifndef UBRK_TYPEDEF_UBREAK_ITERATOR
31# define UBRK_TYPEDEF_UBREAK_ITERATOR
33 typedef struct UBreakIterator UBreakIterator;
34#endif
35
79
92U_CAPI int32_t U_EXPORT2
93u_strlen(const UChar *s);
95
109U_CAPI int32_t U_EXPORT2
110u_countChar32(const UChar *s, int32_t length);
111
130U_CAPI UBool U_EXPORT2
131u_strHasMoreChar32Than(const UChar *s, int32_t length, int32_t number);
132
143U_CAPI UChar* U_EXPORT2
144u_strcat(UChar* dst U_LIFETIME_BOUND, const UChar* src);
145
160U_CAPI UChar* U_EXPORT2
161u_strncat(UChar* dst U_LIFETIME_BOUND, const UChar* src, int32_t n);
162
183U_CAPI UChar* U_EXPORT2
184u_strstr(const UChar* s U_LIFETIME_BOUND, const UChar* substring);
185
207U_CAPI UChar* U_EXPORT2
208u_strFindFirst(const UChar* s U_LIFETIME_BOUND,
209 int32_t length,
210 const UChar* substring,
211 int32_t subLength);
212
230U_CAPI UChar* U_EXPORT2
231u_strchr(const UChar* s U_LIFETIME_BOUND, UChar c);
232
250U_CAPI UChar* U_EXPORT2
251u_strchr32(const UChar* s U_LIFETIME_BOUND, UChar32 c);
252
273U_CAPI UChar* U_EXPORT2
274u_strrstr(const UChar* s U_LIFETIME_BOUND, const UChar* substring);
275
297U_CAPI UChar* U_EXPORT2
298u_strFindLast(const UChar* s U_LIFETIME_BOUND,
299 int32_t length,
300 const UChar* substring,
301 int32_t subLength);
302
320U_CAPI UChar* U_EXPORT2
321u_strrchr(const UChar* s U_LIFETIME_BOUND, UChar c);
322
340U_CAPI UChar* U_EXPORT2
341u_strrchr32(const UChar* s U_LIFETIME_BOUND, UChar32 c);
342
355U_CAPI UChar* U_EXPORT2
356u_strpbrk(const UChar* string U_LIFETIME_BOUND, const UChar* matchSet);
357
371U_CAPI int32_t U_EXPORT2
372u_strcspn(const UChar *string, const UChar *matchSet);
373
387U_CAPI int32_t U_EXPORT2
388u_strspn(const UChar *string, const UChar *matchSet);
389
415U_CAPI UChar* U_EXPORT2
416u_strtok_r(UChar* src U_LIFETIME_BOUND, const UChar* delim, UChar** saveState);
417
428U_CAPI int32_t U_EXPORT2
429u_strcmp(const UChar *s1,
430 const UChar *s2);
431
443U_CAPI int32_t U_EXPORT2
444u_strcmpCodePointOrder(const UChar *s1, const UChar *s2);
445
473U_CAPI int32_t U_EXPORT2
474u_strCompare(const UChar *s1, int32_t length1,
475 const UChar *s2, int32_t length2,
476 UBool codePointOrder);
477
498U_CAPI int32_t U_EXPORT2
499u_strCompareIter(UCharIterator *iter1, UCharIterator *iter2, UBool codePointOrder);
500
541U_CAPI int32_t U_EXPORT2
542u_strCaseCompare(const UChar *s1, int32_t length1,
543 const UChar *s2, int32_t length2,
544 uint32_t options,
545 UErrorCode *pErrorCode);
546
559U_CAPI int32_t U_EXPORT2
560u_strncmp(const UChar *ucs1,
561 const UChar *ucs2,
562 int32_t n);
563
577U_CAPI int32_t U_EXPORT2
578u_strncmpCodePointOrder(const UChar *s1, const UChar *s2, int32_t n);
579
599U_CAPI int32_t U_EXPORT2
600u_strcasecmp(const UChar *s1, const UChar *s2, uint32_t options);
601
623U_CAPI int32_t U_EXPORT2
624u_strncasecmp(const UChar *s1, const UChar *s2, int32_t n, uint32_t options);
625
647U_CAPI int32_t U_EXPORT2
648u_memcasecmp(const UChar *s1, const UChar *s2, int32_t length, uint32_t options);
649
658U_CAPI UChar* U_EXPORT2
659u_strcpy(UChar* dst U_LIFETIME_BOUND, const UChar* src);
660
672U_CAPI UChar* U_EXPORT2
673u_strncpy(UChar* dst U_LIFETIME_BOUND, const UChar* src, int32_t n);
674
675#if !UCONFIG_NO_CONVERSION
676
687U_CAPI UChar* U_EXPORT2 u_uastrcpy(UChar* dst U_LIFETIME_BOUND, const char* src);
688
701U_CAPI UChar* U_EXPORT2 u_uastrncpy(UChar* dst U_LIFETIME_BOUND, const char* src, int32_t n);
702
713U_CAPI char* U_EXPORT2 u_austrcpy(char* dst U_LIFETIME_BOUND, const UChar* src);
714
727U_CAPI char* U_EXPORT2 u_austrncpy(char* dst U_LIFETIME_BOUND, const UChar* src, int32_t n);
728
729#endif
730
739U_CAPI UChar* U_EXPORT2
740u_memcpy(UChar* dest U_LIFETIME_BOUND, const UChar* src, int32_t count);
741
750U_CAPI UChar* U_EXPORT2
751u_memmove(UChar* dest U_LIFETIME_BOUND, const UChar* src, int32_t count);
752
762U_CAPI UChar* U_EXPORT2
763u_memset(UChar* dest U_LIFETIME_BOUND, UChar c, int32_t count);
764
776U_CAPI int32_t U_EXPORT2
777u_memcmp(const UChar *buf1, const UChar *buf2, int32_t count);
778
792U_CAPI int32_t U_EXPORT2
793u_memcmpCodePointOrder(const UChar *s1, const UChar *s2, int32_t count);
794
812U_CAPI UChar* U_EXPORT2
813u_memchr(const UChar* s U_LIFETIME_BOUND, UChar c, int32_t count);
814
832U_CAPI UChar* U_EXPORT2
833u_memchr32(const UChar* s U_LIFETIME_BOUND, UChar32 c, int32_t count);
834
852U_CAPI UChar* U_EXPORT2
853u_memrchr(const UChar* s U_LIFETIME_BOUND, UChar c, int32_t count);
854
872U_CAPI UChar* U_EXPORT2
873u_memrchr32(const UChar* s U_LIFETIME_BOUND, UChar32 c, int32_t count);
874
922#if defined(U_DECLARE_UTF16)
923# define U_STRING_DECL(var, cs, length) static const UChar *var=(const UChar *)U_DECLARE_UTF16(cs)
925# define U_STRING_INIT(var, cs, length)
926#elif U_SIZEOF_WCHAR_T==U_SIZEOF_UCHAR && (U_CHARSET_FAMILY==U_ASCII_FAMILY || defined(U_WCHAR_IS_UTF16))
927# define U_STRING_DECL(var, cs, length) static const UChar var[(length)+1]=L ## cs
929# define U_STRING_INIT(var, cs, length)
930#else
931# define U_STRING_DECL(var, cs, length) static UChar var[(length)+1]
933# define U_STRING_INIT(var, cs, length) u_charsToUChars(cs, var, length+1)
934#endif
935
983U_CAPI int32_t U_EXPORT2
984u_unescape(const char *src,
985 UChar *dest, int32_t destCapacity);
986
1000typedef UChar (U_CALLCONV *UNESCAPE_CHAR_AT)(int32_t offset, void *context);
1002
1031U_CAPI UChar32 U_EXPORT2
1033 int32_t *offset,
1034 int32_t length,
1035 void *context);
1036
1057U_CAPI int32_t U_EXPORT2
1058u_strToUpper(UChar *dest, int32_t destCapacity,
1059 const UChar *src, int32_t srcLength,
1060 const char *locale,
1061 UErrorCode *pErrorCode);
1062
1083U_CAPI int32_t U_EXPORT2
1084u_strToLower(UChar *dest, int32_t destCapacity,
1085 const UChar *src, int32_t srcLength,
1086 const char *locale,
1087 UErrorCode *pErrorCode);
1088
1089#if !UCONFIG_NO_BREAK_ITERATION
1090
1129U_CAPI int32_t U_EXPORT2
1130u_strToTitle(UChar *dest, int32_t destCapacity,
1131 const UChar *src, int32_t srcLength,
1132 UBreakIterator *titleIter,
1133 const char *locale,
1134 UErrorCode *pErrorCode);
1135
1136#endif
1137
1162U_CAPI int32_t U_EXPORT2
1163u_strFoldCase(UChar *dest, int32_t destCapacity,
1164 const UChar *src, int32_t srcLength,
1165 uint32_t options,
1166 UErrorCode *pErrorCode);
1167
1168#if defined(U_WCHAR_IS_UTF16) || defined(U_WCHAR_IS_UTF32) || !UCONFIG_NO_CONVERSION
1191U_CAPI wchar_t* U_EXPORT2
1192u_strToWCS(wchar_t* dest U_LIFETIME_BOUND,
1193 int32_t destCapacity,
1194 int32_t* pDestLength,
1195 const UChar* src,
1196 int32_t srcLength,
1197 UErrorCode* pErrorCode);
1220U_CAPI UChar* U_EXPORT2
1221u_strFromWCS(UChar* dest U_LIFETIME_BOUND,
1222 int32_t destCapacity,
1223 int32_t* pDestLength,
1224 const wchar_t* src,
1225 int32_t srcLength,
1226 UErrorCode* pErrorCode);
1227#endif /* defined(U_WCHAR_IS_UTF16) || defined(U_WCHAR_IS_UTF32) || !UCONFIG_NO_CONVERSION */
1228
1251U_CAPI char* U_EXPORT2
1252u_strToUTF8(char* dest U_LIFETIME_BOUND,
1253 int32_t destCapacity,
1254 int32_t* pDestLength,
1255 const UChar* src,
1256 int32_t srcLength,
1257 UErrorCode* pErrorCode);
1258
1281U_CAPI UChar* U_EXPORT2
1282u_strFromUTF8(UChar* dest U_LIFETIME_BOUND,
1283 int32_t destCapacity,
1284 int32_t* pDestLength,
1285 const char* src,
1286 int32_t srcLength,
1287 UErrorCode* pErrorCode);
1288
1324U_CAPI char* U_EXPORT2
1325u_strToUTF8WithSub(char* dest U_LIFETIME_BOUND,
1326 int32_t destCapacity,
1327 int32_t* pDestLength,
1328 const UChar* src,
1329 int32_t srcLength,
1330 UChar32 subchar,
1331 int32_t* pNumSubstitutions,
1332 UErrorCode* pErrorCode);
1333
1370U_CAPI UChar* U_EXPORT2
1371u_strFromUTF8WithSub(UChar* dest U_LIFETIME_BOUND,
1372 int32_t destCapacity,
1373 int32_t* pDestLength,
1374 const char* src,
1375 int32_t srcLength,
1376 UChar32 subchar,
1377 int32_t* pNumSubstitutions,
1378 UErrorCode* pErrorCode);
1379
1431U_CAPI UChar* U_EXPORT2
1432u_strFromUTF8Lenient(UChar* dest U_LIFETIME_BOUND,
1433 int32_t destCapacity,
1434 int32_t* pDestLength,
1435 const char* src,
1436 int32_t srcLength,
1437 UErrorCode* pErrorCode);
1438
1461U_CAPI UChar32* U_EXPORT2
1462u_strToUTF32(UChar32* dest U_LIFETIME_BOUND,
1463 int32_t destCapacity,
1464 int32_t* pDestLength,
1465 const UChar* src,
1466 int32_t srcLength,
1467 UErrorCode* pErrorCode);
1468
1491U_CAPI UChar* U_EXPORT2
1492u_strFromUTF32(UChar* dest U_LIFETIME_BOUND,
1493 int32_t destCapacity,
1494 int32_t* pDestLength,
1495 const UChar32* src,
1496 int32_t srcLength,
1497 UErrorCode* pErrorCode);
1498
1534U_CAPI UChar32* U_EXPORT2
1535u_strToUTF32WithSub(UChar32* dest U_LIFETIME_BOUND,
1536 int32_t destCapacity,
1537 int32_t* pDestLength,
1538 const UChar* src,
1539 int32_t srcLength,
1540 UChar32 subchar,
1541 int32_t* pNumSubstitutions,
1542 UErrorCode* pErrorCode);
1543
1579U_CAPI UChar* U_EXPORT2
1580u_strFromUTF32WithSub(UChar* dest U_LIFETIME_BOUND,
1581 int32_t destCapacity,
1582 int32_t* pDestLength,
1583 const UChar32* src,
1584 int32_t srcLength,
1585 UChar32 subchar,
1586 int32_t* pNumSubstitutions,
1587 UErrorCode* pErrorCode);
1588
1621U_CAPI char* U_EXPORT2
1622u_strToJavaModifiedUTF8(char* dest U_LIFETIME_BOUND,
1623 int32_t destCapacity,
1624 int32_t* pDestLength,
1625 const UChar* src,
1626 int32_t srcLength,
1627 UErrorCode* pErrorCode);
1628
1670U_CAPI UChar* U_EXPORT2
1672 int32_t destCapacity,
1673 int32_t* pDestLength,
1674 const char* src,
1675 int32_t srcLength,
1676 UChar32 subchar,
1677 int32_t* pNumSubstitutions,
1678 UErrorCode* pErrorCode);
1679
1680#endif
#define U_CALLCONV
Similar to U_CDECL_BEGIN/U_CDECL_END, this qualifier is necessary in callback function typedefs to ma...
Definition platform.h:880
C API: Platform Utilities.
C API for code unit iteration.
Definition uiter.h:341
struct UBreakIterator UBreakIterator
Opaque type representing an ICU Break iterator object.
Definition ubrk.h:31
C API: Unicode Character Iteration.
char16_t UChar
The base type for UTF-16 code units and pointers.
Definition umachine.h:400
int32_t UChar32
Define UChar32 as a type for single Unicode code points.
Definition umachine.h:449
#define U_CDECL_END
This is used to end a declaration of a library private ICU C API.
Definition umachine.h:86
int8_t UBool
The ICU boolean type, a signed-byte integer.
Definition umachine.h:269
#define U_CAPI
This is used to declare a function as a public ICU C API.
Definition umachine.h:110
#define U_CDECL_BEGIN
This is used to begin a declaration of a library private ICU C API.
Definition umachine.h:85
U_CAPI 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.
U_CAPI int32_t u_strcmp(const UChar *s1, const UChar *s2)
Compare two Unicode strings for bitwise equality (code unit order).
U_CAPI UChar32 u_unescapeAt(UNESCAPE_CHAR_AT charAt, int32_t *offset, int32_t length, void *context)
Unescape a single sequence.
U_CAPI 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.
U_CAPI 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.
U_CAPI 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.
U_CAPI 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.
U_CAPI int32_t u_memcmp(const UChar *buf1, const UChar *buf2, int32_t count)
Compare the first count UChars of each buffer.
U_CAPI UChar * u_memchr(const UChar *s, UChar c, int32_t count)
Find the first occurrence of a BMP code point in a string.
U_CAPI 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.
U_CAPI char * u_austrcpy(char *dst, const UChar *src)
Copy ustring to a byte string encoded in the default codepage.
U_CAPI UChar * u_strrchr32(const UChar *s, UChar32 c)
Find the last occurrence of a code point in a string.
U_CAPI 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...
U_CAPI 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.
U_CAPI UChar * u_strncat(UChar *dst, const UChar *src, int32_t n)
Concatenate two ustrings.
U_CAPI int32_t u_strcasecmp(const UChar *s1, const UChar *s2, uint32_t options)
Compare two strings case-insensitively using full case folding.
U_CAPI int32_t u_strlen(const UChar *s)
Determine the length of an array of UChar.
U_CAPI 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.
U_CAPI int32_t u_strncmp(const UChar *ucs1, const UChar *ucs2, int32_t n)
Compare two ustrings for bitwise equality.
U_CAPI UChar * u_memrchr(const UChar *s, UChar c, int32_t count)
Find the last occurrence of a BMP code point in a string.
U_CAPI 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(* 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:1000
U_CAPI 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.
U_CAPI 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.
U_CAPI int32_t u_strncmpCodePointOrder(const UChar *s1, const UChar *s2, int32_t n)
Compare two Unicode strings in code point order.
U_CAPI 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.
U_CAPI 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.
U_CAPI UChar * u_uastrncpy(UChar *dst, const char *src, int32_t n)
Copy a byte string encoded in the default codepage to a ustring.
U_CAPI UChar * u_memset(UChar *dest, UChar c, int32_t count)
Initialize count characters of dest to c.
U_CAPI UChar * u_strchr(const UChar *s, UChar c)
Find the first occurrence of a BMP code point in a string.
U_CAPI 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.
U_CAPI 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.
U_CAPI UChar * u_memmove(UChar *dest, const UChar *src, int32_t count)
Synonym for memmove(), but with UChars only.
U_CAPI int32_t u_strCompareIter(UCharIterator *iter1, UCharIterator *iter2, UBool codePointOrder)
Compare two Unicode strings (binary order) as presented by UCharIterator objects.
U_CAPI UChar * u_strcat(UChar *dst, const UChar *src)
Concatenate two ustrings.
U_CAPI int32_t u_strcmpCodePointOrder(const UChar *s1, const UChar *s2)
Compare two Unicode strings in code point order.
U_CAPI 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.
U_CAPI UChar * u_uastrcpy(UChar *dst, const char *src)
Copy a byte string encoded in the default codepage to a ustring.
U_CAPI 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.
U_CAPI 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.
U_CAPI char * u_austrncpy(char *dst, const UChar *src, int32_t n)
Copy ustring to a byte string encoded in the default codepage.
U_CAPI UChar * u_memrchr32(const UChar *s, UChar32 c, int32_t count)
Find the last occurrence of a code point in a string.
U_CAPI 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.
U_CAPI UChar * u_strrstr(const UChar *s, const UChar *substring)
Find the last occurrence of a substring in a string.
U_CAPI 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.
U_CAPI UChar * u_strncpy(UChar *dst, const UChar *src, int32_t n)
Copy a ustring.
U_CAPI UChar * u_strtok_r(UChar *src, const UChar *delim, UChar **saveState)
The string tokenizer API allows an application to break a string into tokens.
U_CAPI 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...
U_CAPI UChar * u_memchr32(const UChar *s, UChar32 c, int32_t count)
Find the first occurrence of a code point in a string.
U_CAPI int32_t u_strCompare(const UChar *s1, int32_t length1, const UChar *s2, int32_t length2, UBool codePointOrder)
Compare two Unicode strings (binary order).
U_CAPI 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.
U_CAPI UChar * u_memcpy(UChar *dest, const UChar *src, int32_t count)
Synonym for memcpy(), but with UChars only.
U_CAPI int32_t u_memcmpCodePointOrder(const UChar *s1, const UChar *s2, int32_t count)
Compare two Unicode strings in code point order.
U_CAPI 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.
U_CAPI 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.
U_CAPI UChar * u_strstr(const UChar *s, const UChar *substring)
Find the first occurrence of a substring in a string.
U_CAPI int32_t u_countChar32(const UChar *s, int32_t length)
Count Unicode code points in the length UChar code units of the string.
U_CAPI 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.
U_CAPI UChar * u_strchr32(const UChar *s, UChar32 c)
Find the first occurrence of a code point in a string.
U_CAPI 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.
U_CAPI UChar * u_strcpy(UChar *dst, const UChar *src)
Copy a ustring.
U_CAPI UChar * u_strrchr(const UChar *s, UChar c)
Find the last occurrence of a BMP code point in a string.
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition utypes.h:509