1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: interface of global functions
4 // Author: wxWidgets team
6 // Licence: wxWindows license
7 /////////////////////////////////////////////////////////////////////////////
9 /** @addtogroup group_funcmacro_string */
13 @return @true if the pointer is either @NULL or points to an empty string,
18 bool wxIsEmpty(const char* p
);
21 This is a safe version of standard function @e strlen(): it does exactly
22 the same thing (i.e. returns the length of the string) except that it
23 returns 0 if @a p is the @NULL pointer.
27 size_t wxStrlen(const char* p
);
30 This function complements the standard C function @e stricmp() which
31 performs case-insensitive comparison.
33 @return A negative value, 0, or positive value if @a p1 is less than,
34 equal to or greater than @a p2. The comparison is case-sensitive.
38 int wxStrcmp(const char* p1
, const char* p2
);
41 This function complements the standard C function @e strcmp() which performs
42 case-sensitive comparison.
44 @return A negative value, 0, or positive value if @a p1 is less than,
45 equal to or greater than @e p2. The comparison is case-insensitive.
49 int wxStricmp(const char* p1
, const char* p2
);
52 @deprecated Use wxString instead.
54 This macro is defined as:
57 #define wxStringEq(s1, s2) (s1 && s2 && (strcmp(s1, s2) == 0))
62 bool wxStringEq(const wxString
& s1
, const wxString
& s2
);
65 @deprecated Use wxString::Find() instead.
67 Returns @true if the substring @a s1 is found within @a s2, ignoring case
68 if @a exact is @false. If @a subString is @false, no substring matching is
73 bool wxStringMatch(const wxString
& s1
, const wxString
& s2
,
74 bool subString
= true, bool exact
= false);
77 This is a convenience function wrapping wxStringTokenizer which simply
78 returns all tokens found in the given @a string in an array.
80 Please see wxStringTokenizer::wxStringTokenizer() for a description of the
85 wxArrayString
wxStringTokenize(const wxString
& string
,
86 const wxString
& delims
= wxDEFAULT_DELIMITERS
,
87 wxStringTokenizerMode mode
= wxTOKEN_DEFAULT
);
90 Safe and more convenient replacement for strncpy().
92 This function copies the source string @a src to the destination buffer @a
93 dst of size @a n without overflowing the buffer and ensuring that it is
94 always @NUL-terminated.
99 if ( wxStrlcpy(buf, GetSomeString(), WXSIZEOF(buf)) > WXSIZEOF(buf) )
100 ... handle truncation ...
102 Notice that using wxStrncpy() in similar way is wrong, the above is broadly
106 buf[WXSIZEOF(buf) - 1] = '\0';
107 wxStrncpy(buf, GetSomeString(), WXSIZEOF(buf) - 1);
108 if ( buf[WXSIZEOF(buf) - 1] != '\0' )
110 ... truncation occurred ...
111 // need to NUL-terminate string manually
112 buf[WXSIZEOF(buf) - 1] = '\0';
115 which should explain the advantage of using wxStrlcpy().
117 Notice that this function is similar to the OpenBSD strlcpy() function.
119 The template parameter @a T can be either @c char or @c wchar_t.
122 Destination buffer of size (greater or) equal to @a n.
124 @NUL-terminated source string.
126 The size of the destination buffer.
128 The length of @a src, if the returned value is greater or equal to @a n
129 then there was not enough space in the destination buffer and the
130 string was truncated.
136 template <typename T
>
137 size_t wxStrlcpy(T
*dst
, const T
*src
, size_t n
);
140 This function replaces the dangerous standard function @e sprintf() and is
141 like @e snprintf() available on some platforms. The only difference with
142 @e sprintf() is that an additional argument - buffer size - is taken and
143 the buffer is never overflowed.
145 Returns the number of characters copied to the buffer or -1 if there is not
148 @see wxVsnprintf(), wxString::Printf()
152 int wxSnprintf(wxChar
* buf
, size_t len
, const wxChar
* format
, ...);
155 The same as wxSnprintf() but takes a @c va_list argument instead of an
156 arbitrary number of parameters.
158 @note If @c wxUSE_PRINTF_POS_PARAMS is set to 1, then this function
159 supports positional arguments (see wxString::Printf() for more
160 information). However other functions of the same family (wxPrintf(),
161 wxSprintf(), wxFprintf(), wxVfprintf(), wxVfprintf(), wxVprintf(),
162 wxVsprintf()) currently do not to support positional parameters even
163 when @c wxUSE_PRINTF_POS_PARAMS is 1.
165 @see wxSnprintf(), wxString::PrintfV()
169 int wxVsnprintf(wxChar
* buf
, size_t len
,
170 const wxChar
* format
, va_list argPtr
);