str.h 1.6 KB

123456789101112131415161718192021222324252627282930313233
  1. #ifndef AFUN_STR_H
  2. #define AFUN_STR_H
  3. #include <wchar.h>
  4. #include <string.h>
  5. #include "aFunToolExport.h"
  6. /* 字符串工具 */
  7. #define EQ_STR(str1, str2) (!strcmp((str1), (str2)))
  8. #define EQ_WSTR(wid1, wid2) (!wcscmp((wid1), (wid2)))
  9. #define pathCopy(path) ((FilePath)strCopy((char *)(path)))
  10. #define NEW_STR(size) (char *)calloc((size) + 1, sizeof(char))
  11. #define NEW_WSTR(size) (wchar_t *)calloc((size) + 1, sizeof(wchar_t))
  12. #define STR_LEN(p) (((p) == NULL) ? 0 : strlen((p)))
  13. #define WSTR_LEN(p) (((p) == NULL) ? 0 : wcslen((p)))
  14. AFUN_TOOL_EXPORT char *charToStr(char ch);
  15. AFUN_TOOL_EXPORT char *strCopy(const char *str);
  16. AFUN_TOOL_EXPORT wchar_t *wstrCopy(const wchar_t *str);
  17. AFUN_TOOL_EXPORT wchar_t *wstrWithWchar(wchar_t *str, size_t size, int free_old, ...);
  18. AFUN_TOOL_EXPORT wchar_t *wstrWithWchar_(wchar_t *str, wint_t new, bool free_old);
  19. AFUN_TOOL_EXPORT wchar_t *wstrExpansion(wchar_t *str, size_t size, bool free_old);
  20. AFUN_TOOL_EXPORT char *strJoinIter(char *base, int free_base, ...);
  21. AFUN_TOOL_EXPORT char *strJoin(char *first, char *second, bool free_first, bool free_last);
  22. AFUN_TOOL_EXPORT char *strJoin_(char *first, char *second, bool free_first, bool free_last);
  23. AFUN_TOOL_EXPORT wchar_t *wstrJoin(wchar_t *first, wchar_t *second, bool free_first, bool free_last);
  24. AFUN_TOOL_EXPORT wchar_t *wstrJoin_(wchar_t *first, wchar_t *second, bool free_first, bool free_last);
  25. AFUN_TOOL_EXPORT wchar_t *wstrCopySelf(wchar_t *str, long times);
  26. AFUN_TOOL_EXPORT wchar_t *wstrReverse(wchar_t *str);
  27. AFUN_TOOL_EXPORT wchar_t *convertToWstr(char *str, bool free_old);
  28. AFUN_TOOL_EXPORT char *convertToStr(wchar_t *wstr, bool free_old);
  29. #endif //AFUN_STR_H