📄 string.h
字号:
* @param len The maximum number of characters to compare.
*
* @return
* - < 0 if str1 is less than str2
* - 0 if str1 is identical to str2
* - > 0 if str1 is greater than str2
*/
PJ_IDECL(int) pj_strncmp2( const pj_str_t *str1, const char *str2,
pj_size_t len);
/**
* Perform lowercase comparison to the strings.
*
* @param str1 The string to compare.
* @param str2 The string to compare.
*
* @return
* - < 0 if str1 is less than str2
* - 0 if str1 is equal to str2
* - > 0 if str1 is greater than str2
*/
PJ_IDECL(int) pj_stricmp(const pj_str_t *str1, const pj_str_t *str2);
/**
* Perform lowercase comparison to the strings which consists of only
* alnum characters. More over, it will only return non-zero if both
* strings are not equal, not the usual negative or positive value.
*
* If non-alnum inputs are given, then the function may mistakenly
* treat two strings as equal.
*
* @param str1 The string to compare.
* @param str2 The string to compare.
* @param len The length to compare.
*
* @return
* - 0 if str1 is equal to str2
* - (-1) if not equal.
*/
#if defined(PJ_HAS_STRICMP_ALNUM) && PJ_HAS_STRICMP_ALNUM!=0
PJ_IDECL(int) strnicmp_alnum(const char *str1, const char *str2,
int len);
#else
#define strnicmp_alnum pj_ansi_strnicmp
#endif
/**
* Perform lowercase comparison to the strings which consists of only
* alnum characters. More over, it will only return non-zero if both
* strings are not equal, not the usual negative or positive value.
*
* If non-alnum inputs are given, then the function may mistakenly
* treat two strings as equal.
*
* @param str1 The string to compare.
* @param str2 The string to compare.
*
* @return
* - 0 if str1 is equal to str2
* - (-1) if not equal.
*/
#if defined(PJ_HAS_STRICMP_ALNUM) && PJ_HAS_STRICMP_ALNUM!=0
PJ_IDECL(int) pj_stricmp_alnum(const pj_str_t *str1, const pj_str_t *str2);
#else
#define pj_stricmp_alnum pj_stricmp
#endif
/**
* Perform lowercase comparison to the strings.
*
* @param str1 The string to compare.
* @param str2 The string to compare.
*
* @return
* - < 0 if str1 is less than str2
* - 0 if str1 is identical to str2
* - > 0 if str1 is greater than str2
*/
PJ_IDECL(int) pj_stricmp2( const pj_str_t *str1, const char *str2);
/**
* Perform lowercase comparison to the strings.
*
* @param str1 The string to compare.
* @param str2 The string to compare.
* @param len The maximum number of characters to compare.
*
* @return
* - < 0 if str1 is less than str2
* - 0 if str1 is identical to str2
* - > 0 if str1 is greater than str2
*/
PJ_IDECL(int) pj_strnicmp( const pj_str_t *str1, const pj_str_t *str2,
pj_size_t len);
/**
* Perform lowercase comparison to the strings.
*
* @param str1 The string to compare.
* @param str2 The string to compare.
* @param len The maximum number of characters to compare.
*
* @return
* - < 0 if str1 is less than str2
* - 0 if str1 is identical to str2
* - > 0 if str1 is greater than str2
*/
PJ_IDECL(int) pj_strnicmp2( const pj_str_t *str1, const char *str2,
pj_size_t len);
/**
* Concatenate strings.
*
* @param dst The destination string.
* @param src The source string.
*/
PJ_IDECL(void) pj_strcat(pj_str_t *dst, const pj_str_t *src);
/**
* Concatenate strings.
*
* @param dst The destination string.
* @param src The source string.
*/
PJ_IDECL(void) pj_strcat2(pj_str_t *dst, const char *src);
/**
* Finds a character in a string.
*
* @param str The string.
* @param chr The character to find.
*
* @return the pointer to first character found, or NULL.
*/
PJ_INLINE(char*) pj_strchr( const pj_str_t *str, int chr)
{
return (char*) memchr((char*)str->ptr, chr, str->slen);
}
/**
* Remove (trim) leading whitespaces from the string.
*
* @param str The string.
*
* @return the string.
*/
PJ_DECL(pj_str_t*) pj_strltrim( pj_str_t *str );
/**
* Remove (trim) the trailing whitespaces from the string.
*
* @param str The string.
*
* @return the string.
*/
PJ_DECL(pj_str_t*) pj_strrtrim( pj_str_t *str );
/**
* Remove (trim) leading and trailing whitespaces from the string.
*
* @param str The string.
*
* @return the string.
*/
PJ_IDECL(pj_str_t*) pj_strtrim( pj_str_t *str );
/**
* Initialize the buffer with some random string.
*
* @param str the string to store the result.
* @param length the length of the random string to generate.
*
* @return the string.
*/
PJ_DECL(char*) pj_create_random_string(char *str, pj_size_t length);
/**
* Convert string to unsigned integer.
*
* @param str the string.
*
* @return the unsigned integer.
*/
PJ_DECL(unsigned long) pj_strtoul(const pj_str_t *str);
/**
* Convert strings to an unsigned long-integer value.
* This function stops reading the string input either when the number
* of characters has exceeded the length of the input or it has read
* the first character it cannot recognize as part of a number, that is
* a character greater than or equal to base.
*
* @param str The input string.
* @param endptr Optional pointer to receive the remainder/unparsed
* portion of the input.
* @param base Number base to use.
*
* @return the unsigned integer number.
*/
PJ_DECL(unsigned long) pj_strtoul2(const pj_str_t *str, pj_str_t *endptr,
unsigned base);
/**
* Utility to convert unsigned integer to string. Note that the
* string will be NULL terminated.
*
* @param val the unsigned integer value.
* @param buf the buffer
*
* @return the number of characters written
*/
PJ_DECL(int) pj_utoa(unsigned long val, char *buf);
/**
* Convert unsigned integer to string with minimum digits. Note that the
* string will be NULL terminated.
*
* @param val The unsigned integer value.
* @param buf The buffer.
* @param min_dig Minimum digits to be printed, or zero to specify no
* minimum digit.
* @param pad The padding character to be put in front of the string
* when the digits is less than minimum.
*
* @return the number of characters written.
*/
PJ_DECL(int) pj_utoa_pad( unsigned long val, char *buf, int min_dig, int pad);
/**
* Fill the memory location with zero.
*
* @param dst The destination buffer.
* @param size The number of bytes.
*/
PJ_INLINE(void) pj_bzero(void *dst, pj_size_t size)
{
#if defined(PJ_HAS_BZERO) && PJ_HAS_BZERO!=0
bzero(dst, size);
#else
memset(dst, 0, size);
#endif
}
/**
* Fill the memory location with value.
*
* @param dst The destination buffer.
* @param c Character to set.
* @param size The number of characters.
*
* @return the value of dst.
*/
PJ_INLINE(void*) pj_memset(void *dst, int c, pj_size_t size)
{
return memset(dst, c, size);
}
/**
* Copy buffer.
*
* @param dst The destination buffer.
* @param src The source buffer.
* @param size The size to copy.
*
* @return the destination buffer.
*/
PJ_INLINE(void*) pj_memcpy(void *dst, const void *src, pj_size_t size)
{
return memcpy(dst, src, size);
}
/**
* Move memory.
*
* @param dst The destination buffer.
* @param src The source buffer.
* @param size The size to copy.
*
* @return the destination buffer.
*/
PJ_INLINE(void*) pj_memmove(void *dst, const void *src, pj_size_t size)
{
return memmove(dst, src, size);
}
/**
* Compare buffers.
*
* @param buf1 The first buffer.
* @param buf2 The second buffer.
* @param size The size to compare.
*
* @return negative, zero, or positive value.
*/
PJ_INLINE(int) pj_memcmp(const void *buf1, const void *buf2, pj_size_t size)
{
return memcmp(buf1, buf2, size);
}
/**
* Find character in the buffer.
*
* @param buf The buffer.
* @param c The character to find.
* @param size The size to check.
*
* @return the pointer to location where the character is found, or NULL if
* not found.
*/
PJ_INLINE(void*) pj_memchr(const void *buf, int c, pj_size_t size)
{
return (void*)memchr((void*)buf, c, size);
}
/**
* @}
*/
#if PJ_FUNCTIONS_ARE_INLINED
# include <pj/string_i.h>
#endif
PJ_END_DECL
#endif /* __PJ_STRING_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -