00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef USTRING_H
00017 #define USTRING_H
00018 #include "unicode/utypes.h"
00019
00027 U_CAPI int32_t U_EXPORT2
00028 u_strlen(const UChar *s);
00029
00041 U_CAPI UChar* U_EXPORT2
00042 u_strcat(UChar *dst,
00043 const UChar *src);
00044
00056 U_CAPI UChar* U_EXPORT2
00057 u_strncat(UChar *dst,
00058 const UChar *src,
00059 int32_t n);
00060
00070 U_CAPI UChar* U_EXPORT2
00071 u_strchr(const UChar *s,
00072 UChar c);
00073
00082 U_CAPI UChar * U_EXPORT2
00083 u_strstr(const UChar *s, const UChar *substring);
00084
00096 U_CAPI UChar * U_EXPORT2
00097 u_strchr32(const UChar *s, UChar32 c);
00098
00108 U_CAPI UChar * U_EXPORT2
00109 u_strpbrk(const UChar *string, const UChar *matchSet);
00110
00119 U_CAPI int32_t U_EXPORT2
00120 u_strcspn(const UChar *string, const UChar *matchSet);
00121
00130 U_CAPI int32_t U_EXPORT2
00131 u_strspn(const UChar *string, const UChar *matchSet);
00132
00153 U_CAPI UChar * U_EXPORT2
00154 u_strtok_r(UChar *src,
00155 const UChar *delim,
00156 UChar **saveState);
00157
00168 U_CAPI int32_t U_EXPORT2
00169 u_strcmp(const UChar *s1,
00170 const UChar *s2);
00171
00189 U_CAPI int32_t U_EXPORT2
00190 u_strcmpCodePointOrder(const UChar *s1, const UChar *s2);
00191
00204 U_CAPI int32_t U_EXPORT2
00205 u_strncmp(const UChar *ucs1,
00206 const UChar *ucs2,
00207 int32_t n);
00208
00219 U_CAPI int32_t U_EXPORT2
00220 u_strcasecmp(const UChar *s1, const UChar *s2, uint32_t options);
00221
00234 U_CAPI int32_t U_EXPORT2
00235 u_strncasecmp(const UChar *s1, const UChar *s2, int32_t n, uint32_t options);
00236
00249 U_CAPI int32_t U_EXPORT2
00250 u_memcasecmp(const UChar *s1, const UChar *s2, int32_t length, uint32_t options);
00251
00260 U_CAPI UChar* U_EXPORT2
00261 u_strcpy(UChar *dst,
00262 const UChar *src);
00263
00275 U_CAPI UChar* U_EXPORT2
00276 u_strncpy(UChar *dst,
00277 const UChar *src,
00278 int32_t n);
00279
00290 U_CAPI UChar* U_EXPORT2 u_uastrcpy(UChar *dst,
00291 const char *src );
00292
00305 U_CAPI UChar* U_EXPORT2 u_uastrncpy(UChar *dst,
00306 const char *src,
00307 int32_t n);
00308
00319 U_CAPI char* U_EXPORT2 u_austrcpy(char *dst,
00320 const UChar *src );
00321
00334 U_CAPI char* U_EXPORT2 u_austrncpy(char *dst,
00335 const UChar *src,
00336 int32_t n );
00337
00338
00343 U_CAPI UChar* U_EXPORT2
00344 u_memcpy(UChar *dest, const UChar *src, int32_t count);
00345
00350 U_CAPI UChar* U_EXPORT2
00351 u_memmove(UChar *dest, const UChar *src, int32_t count);
00352
00362 U_CAPI UChar* U_EXPORT2
00363 u_memset(UChar *dest, UChar c, int32_t count);
00364
00376 U_CAPI int32_t U_EXPORT2
00377 u_memcmp(UChar *buf1, UChar *buf2, int32_t count);
00378
00391 U_CAPI UChar* U_EXPORT2
00392 u_memchr(UChar *src, UChar ch, int32_t count);
00393
00406 U_CAPI UChar* U_EXPORT2
00407 u_memchr32(UChar *src, UChar32 ch, int32_t count);
00408
00444 #if U_SIZEOF_WCHAR_T==U_SIZEOF_UCHAR && U_CHARSET_FAMILY==U_ASCII_FAMILY
00445 # define U_STRING_DECL(var, cs, length) static const wchar_t var[(length)+1]={ L ## cs }
00446 # define U_STRING_INIT(var, cs, length)
00447 #elif U_SIZEOF_UCHAR==1 && U_CHARSET_FAMILY==U_ASCII_FAMILY
00448 # define U_STRING_DECL(var, cs, length) static const UChar var[(length)+1]={ (const UChar *)cs }
00449 # define U_STRING_INIT(var, cs, length)
00450 #else
00451 # define U_STRING_DECL(var, cs, length) static UChar var[(length)+1]
00452 # define U_STRING_INIT(var, cs, length) u_charsToUChars(cs, var, length+1)
00453 #endif
00454
00500 U_CAPI int32_t U_EXPORT2
00501 u_unescape(const char *src,
00502 UChar *dest, int32_t destCapacity);
00503
00511 U_CDECL_BEGIN
00512 typedef UChar (*UNESCAPE_CHAR_AT)(int32_t offset, void *context);
00513 U_CDECL_END
00514
00542 U_CAPI UChar32 U_EXPORT2
00543 u_unescapeAt(UNESCAPE_CHAR_AT charAt,
00544 int32_t *offset,
00545 int32_t length,
00546 void *context);
00547
00568 U_CAPI int32_t U_EXPORT2
00569 u_strToUpper(UChar *dest, int32_t destCapacity,
00570 const UChar *src, int32_t srcLength,
00571 const char *locale,
00572 UErrorCode *pErrorCode);
00573
00594 U_CAPI int32_t U_EXPORT2
00595 u_strToLower(UChar *dest, int32_t destCapacity,
00596 const UChar *src, int32_t srcLength,
00597 const char *locale,
00598 UErrorCode *pErrorCode);
00599
00622 U_CAPI int32_t U_EXPORT2
00623 u_strFoldCase(UChar *dest, int32_t destCapacity,
00624 const UChar *src, int32_t srcLength,
00625 uint32_t options,
00626 UErrorCode *pErrorCode);
00627
00628 #endif