ICU 4.8.1.1  4.8.1.1
ustring.h
Go to the documentation of this file.
00001 /*
00002 **********************************************************************
00003 *   Copyright (C) 1998-2010, International Business Machines
00004 *   Corporation and others.  All Rights Reserved.
00005 **********************************************************************
00006 *
00007 * File ustring.h
00008 *
00009 * Modification History:
00010 *
00011 *   Date        Name        Description
00012 *   12/07/98    bertrand    Creation.
00013 ******************************************************************************
00014 */
00015 
00016 #ifndef USTRING_H
00017 #define USTRING_H
00018 
00019 #include "unicode/utypes.h"
00020 #include "unicode/putil.h"
00021 #include "unicode/uiter.h"
00022 
00024 #ifndef UBRK_TYPEDEF_UBREAK_ITERATOR
00025 #   define UBRK_TYPEDEF_UBREAK_ITERATOR
00026     typedef struct UBreakIterator UBreakIterator;
00027 #endif
00028 
00085 U_STABLE int32_t U_EXPORT2
00086 u_strlen(const UChar *s);
00102 U_STABLE int32_t U_EXPORT2
00103 u_countChar32(const UChar *s, int32_t length);
00104 
00123 U_STABLE UBool U_EXPORT2
00124 u_strHasMoreChar32Than(const UChar *s, int32_t length, int32_t number);
00125 
00136 U_STABLE UChar* U_EXPORT2
00137 u_strcat(UChar     *dst, 
00138     const UChar     *src);
00139 
00154 U_STABLE UChar* U_EXPORT2
00155 u_strncat(UChar     *dst, 
00156      const UChar     *src, 
00157      int32_t     n);
00158 
00179 U_STABLE UChar * U_EXPORT2
00180 u_strstr(const UChar *s, const UChar *substring);
00181 
00203 U_STABLE UChar * U_EXPORT2
00204 u_strFindFirst(const UChar *s, int32_t length, const UChar *substring, int32_t subLength);
00205 
00223 U_STABLE UChar * U_EXPORT2
00224 u_strchr(const UChar *s, UChar c);
00225 
00243 U_STABLE UChar * U_EXPORT2
00244 u_strchr32(const UChar *s, UChar32 c);
00245 
00266 U_STABLE UChar * U_EXPORT2
00267 u_strrstr(const UChar *s, const UChar *substring);
00268 
00290 U_STABLE UChar * U_EXPORT2
00291 u_strFindLast(const UChar *s, int32_t length, const UChar *substring, int32_t subLength);
00292 
00310 U_STABLE UChar * U_EXPORT2
00311 u_strrchr(const UChar *s, UChar c);
00312 
00330 U_STABLE UChar * U_EXPORT2
00331 u_strrchr32(const UChar *s, UChar32 c);
00332 
00345 U_STABLE UChar * U_EXPORT2
00346 u_strpbrk(const UChar *string, const UChar *matchSet);
00347 
00361 U_STABLE int32_t U_EXPORT2
00362 u_strcspn(const UChar *string, const UChar *matchSet);
00363 
00377 U_STABLE int32_t U_EXPORT2
00378 u_strspn(const UChar *string, const UChar *matchSet);
00379 
00405 U_STABLE UChar * U_EXPORT2
00406 u_strtok_r(UChar    *src, 
00407      const UChar    *delim,
00408            UChar   **saveState);
00409 
00420 U_STABLE int32_t  U_EXPORT2
00421 u_strcmp(const UChar     *s1, 
00422          const UChar     *s2);
00423 
00435 U_STABLE int32_t U_EXPORT2
00436 u_strcmpCodePointOrder(const UChar *s1, const UChar *s2);
00437 
00465 U_STABLE int32_t U_EXPORT2
00466 u_strCompare(const UChar *s1, int32_t length1,
00467              const UChar *s2, int32_t length2,
00468              UBool codePointOrder);
00469 
00490 U_STABLE int32_t U_EXPORT2
00491 u_strCompareIter(UCharIterator *iter1, UCharIterator *iter2, UBool codePointOrder);
00492 
00493 #ifndef U_COMPARE_CODE_POINT_ORDER
00494 /* see also unistr.h and unorm.h */
00500 #define U_COMPARE_CODE_POINT_ORDER  0x8000
00501 #endif
00502 
00543 U_STABLE int32_t U_EXPORT2
00544 u_strCaseCompare(const UChar *s1, int32_t length1,
00545                  const UChar *s2, int32_t length2,
00546                  uint32_t options,
00547                  UErrorCode *pErrorCode);
00548 
00561 U_STABLE int32_t U_EXPORT2
00562 u_strncmp(const UChar     *ucs1, 
00563      const UChar     *ucs2, 
00564      int32_t     n);
00565 
00579 U_STABLE int32_t U_EXPORT2
00580 u_strncmpCodePointOrder(const UChar *s1, const UChar *s2, int32_t n);
00581 
00601 U_STABLE int32_t U_EXPORT2
00602 u_strcasecmp(const UChar *s1, const UChar *s2, uint32_t options);
00603 
00625 U_STABLE int32_t U_EXPORT2
00626 u_strncasecmp(const UChar *s1, const UChar *s2, int32_t n, uint32_t options);
00627 
00649 U_STABLE int32_t U_EXPORT2
00650 u_memcasecmp(const UChar *s1, const UChar *s2, int32_t length, uint32_t options);
00651 
00660 U_STABLE UChar* U_EXPORT2
00661 u_strcpy(UChar     *dst, 
00662     const UChar     *src);
00663 
00675 U_STABLE UChar* U_EXPORT2
00676 u_strncpy(UChar     *dst, 
00677      const UChar     *src, 
00678      int32_t     n);
00679 
00680 #if !UCONFIG_NO_CONVERSION
00681 
00692 U_STABLE UChar* U_EXPORT2 u_uastrcpy(UChar *dst,
00693                const char *src );
00694 
00707 U_STABLE UChar* U_EXPORT2 u_uastrncpy(UChar *dst,
00708             const char *src,
00709             int32_t n);
00710 
00721 U_STABLE char* U_EXPORT2 u_austrcpy(char *dst,
00722             const UChar *src );
00723 
00736 U_STABLE char* U_EXPORT2 u_austrncpy(char *dst,
00737             const UChar *src,
00738             int32_t n );
00739 
00740 #endif
00741 
00750 U_STABLE UChar* U_EXPORT2
00751 u_memcpy(UChar *dest, const UChar *src, int32_t count);
00752 
00761 U_STABLE UChar* U_EXPORT2
00762 u_memmove(UChar *dest, const UChar *src, int32_t count);
00763 
00773 U_STABLE UChar* U_EXPORT2
00774 u_memset(UChar *dest, UChar c, int32_t count);
00775 
00787 U_STABLE int32_t U_EXPORT2
00788 u_memcmp(const UChar *buf1, const UChar *buf2, int32_t count);
00789 
00803 U_STABLE int32_t U_EXPORT2
00804 u_memcmpCodePointOrder(const UChar *s1, const UChar *s2, int32_t count);
00805 
00823 U_STABLE UChar* U_EXPORT2
00824 u_memchr(const UChar *s, UChar c, int32_t count);
00825 
00843 U_STABLE UChar* U_EXPORT2
00844 u_memchr32(const UChar *s, UChar32 c, int32_t count);
00845 
00863 U_STABLE UChar* U_EXPORT2
00864 u_memrchr(const UChar *s, UChar c, int32_t count);
00865 
00883 U_STABLE UChar* U_EXPORT2
00884 u_memrchr32(const UChar *s, UChar32 c, int32_t count);
00885 
00936 #if defined(U_DECLARE_UTF16)
00937 #   define U_STRING_DECL(var, cs, length) static const UChar var[(length)+1]=U_DECLARE_UTF16(cs)
00938 
00939 #   define U_STRING_INIT(var, cs, length)
00940 #elif U_SIZEOF_WCHAR_T==U_SIZEOF_UCHAR && (U_CHARSET_FAMILY==U_ASCII_FAMILY || (U_SIZEOF_UCHAR == 2 && defined(U_WCHAR_IS_UTF16)))
00941 #   define U_STRING_DECL(var, cs, length) static const UChar var[(length)+1]=L ## cs
00942 
00943 #   define U_STRING_INIT(var, cs, length)
00944 #elif U_SIZEOF_UCHAR==1 && U_CHARSET_FAMILY==U_ASCII_FAMILY
00945 #   define U_STRING_DECL(var, cs, length) static const UChar var[(length)+1]=cs
00946 
00947 #   define U_STRING_INIT(var, cs, length)
00948 #else
00949 #   define U_STRING_DECL(var, cs, length) static UChar var[(length)+1]
00950 
00951 #   define U_STRING_INIT(var, cs, length) u_charsToUChars(cs, var, length+1)
00952 #endif
00953 
01001 U_STABLE int32_t U_EXPORT2
01002 u_unescape(const char *src,
01003            UChar *dest, int32_t destCapacity);
01004 
01005 U_CDECL_BEGIN
01018 typedef UChar (U_CALLCONV *UNESCAPE_CHAR_AT)(int32_t offset, void *context);
01019 U_CDECL_END
01020 
01049 U_STABLE UChar32 U_EXPORT2
01050 u_unescapeAt(UNESCAPE_CHAR_AT charAt,
01051              int32_t *offset,
01052              int32_t length,
01053              void *context);
01054 
01075 U_STABLE int32_t U_EXPORT2
01076 u_strToUpper(UChar *dest, int32_t destCapacity,
01077              const UChar *src, int32_t srcLength,
01078              const char *locale,
01079              UErrorCode *pErrorCode);
01080 
01101 U_STABLE int32_t U_EXPORT2
01102 u_strToLower(UChar *dest, int32_t destCapacity,
01103              const UChar *src, int32_t srcLength,
01104              const char *locale,
01105              UErrorCode *pErrorCode);
01106 
01107 #if !UCONFIG_NO_BREAK_ITERATION
01108 
01147 U_STABLE int32_t U_EXPORT2
01148 u_strToTitle(UChar *dest, int32_t destCapacity,
01149              const UChar *src, int32_t srcLength,
01150              UBreakIterator *titleIter,
01151              const char *locale,
01152              UErrorCode *pErrorCode);
01153 
01154 #endif
01155 
01178 U_STABLE int32_t U_EXPORT2
01179 u_strFoldCase(UChar *dest, int32_t destCapacity,
01180               const UChar *src, int32_t srcLength,
01181               uint32_t options,
01182               UErrorCode *pErrorCode);
01183 
01184 #if defined(U_WCHAR_IS_UTF16) || defined(U_WCHAR_IS_UTF32) || !UCONFIG_NO_CONVERSION
01185 
01207 U_STABLE wchar_t* U_EXPORT2
01208 u_strToWCS(wchar_t *dest, 
01209            int32_t destCapacity,
01210            int32_t *pDestLength,
01211            const UChar *src, 
01212            int32_t srcLength,
01213            UErrorCode *pErrorCode);
01236 U_STABLE UChar* U_EXPORT2
01237 u_strFromWCS(UChar   *dest,
01238              int32_t destCapacity, 
01239              int32_t *pDestLength,
01240              const wchar_t *src,
01241              int32_t srcLength,
01242              UErrorCode *pErrorCode);
01243 #endif /* defined(U_WCHAR_IS_UTF16) || defined(U_WCHAR_IS_UTF32) || !UCONFIG_NO_CONVERSION */
01244 
01267 U_STABLE char* U_EXPORT2 
01268 u_strToUTF8(char *dest,           
01269             int32_t destCapacity,
01270             int32_t *pDestLength,
01271             const UChar *src, 
01272             int32_t srcLength,
01273             UErrorCode *pErrorCode);
01274 
01297 U_STABLE UChar* U_EXPORT2
01298 u_strFromUTF8(UChar *dest,             
01299               int32_t destCapacity,
01300               int32_t *pDestLength,
01301               const char *src, 
01302               int32_t srcLength,
01303               UErrorCode *pErrorCode);
01304 
01341 U_STABLE char* U_EXPORT2
01342 u_strToUTF8WithSub(char *dest,
01343             int32_t destCapacity,
01344             int32_t *pDestLength,
01345             const UChar *src,
01346             int32_t srcLength,
01347             UChar32 subchar, int32_t *pNumSubstitutions,
01348             UErrorCode *pErrorCode);
01349 
01387 U_STABLE UChar* U_EXPORT2
01388 u_strFromUTF8WithSub(UChar *dest,
01389               int32_t destCapacity,
01390               int32_t *pDestLength,
01391               const char *src,
01392               int32_t srcLength,
01393               UChar32 subchar, int32_t *pNumSubstitutions,
01394               UErrorCode *pErrorCode);
01395 
01447 U_STABLE UChar * U_EXPORT2
01448 u_strFromUTF8Lenient(UChar *dest,
01449                      int32_t destCapacity,
01450                      int32_t *pDestLength,
01451                      const char *src,
01452                      int32_t srcLength,
01453                      UErrorCode *pErrorCode);
01454 
01477 U_STABLE UChar32* U_EXPORT2 
01478 u_strToUTF32(UChar32 *dest, 
01479              int32_t  destCapacity,
01480              int32_t  *pDestLength,
01481              const UChar *src, 
01482              int32_t  srcLength,
01483              UErrorCode *pErrorCode);
01484 
01507 U_STABLE UChar* U_EXPORT2 
01508 u_strFromUTF32(UChar   *dest,
01509                int32_t destCapacity, 
01510                int32_t *pDestLength,
01511                const UChar32 *src,
01512                int32_t srcLength,
01513                UErrorCode *pErrorCode);
01514 
01551 U_STABLE UChar32* U_EXPORT2
01552 u_strToUTF32WithSub(UChar32 *dest,
01553              int32_t destCapacity,
01554              int32_t *pDestLength,
01555              const UChar *src,
01556              int32_t srcLength,
01557              UChar32 subchar, int32_t *pNumSubstitutions,
01558              UErrorCode *pErrorCode);
01559 
01596 U_STABLE UChar* U_EXPORT2
01597 u_strFromUTF32WithSub(UChar *dest,
01598                int32_t destCapacity,
01599                int32_t *pDestLength,
01600                const UChar32 *src,
01601                int32_t srcLength,
01602                UChar32 subchar, int32_t *pNumSubstitutions,
01603                UErrorCode *pErrorCode);
01604 
01637 U_STABLE char* U_EXPORT2 
01638 u_strToJavaModifiedUTF8(
01639         char *dest,
01640         int32_t destCapacity,
01641         int32_t *pDestLength,
01642         const UChar *src, 
01643         int32_t srcLength,
01644         UErrorCode *pErrorCode);
01645 
01686 U_STABLE UChar* U_EXPORT2
01687 u_strFromJavaModifiedUTF8WithSub(
01688         UChar *dest,
01689         int32_t destCapacity,
01690         int32_t *pDestLength,
01691         const char *src,
01692         int32_t srcLength,
01693         UChar32 subchar, int32_t *pNumSubstitutions,
01694         UErrorCode *pErrorCode);
01695 
01696 #endif
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines