C++ 项目成长 —— 重定义一些自己平台关于字符串的系统操作

27 篇文章 0 订阅
16 篇文章 0 订阅

重定义一些自己平台关于字符串的系统操作

概要

     书接上回,项目开始定义了一些系统的平台参数,具体可参见下面的文章:C++ 项目成长 —— 定义跨平台的参数宏的文件记录

     同时,在上次我们尝试去定义了一些编译选项自定义的宏,来控制不同的编译选项的时候,能够做一些区分,具体可以参考下面的文章:C++ 项目成长 —— 自定义编译参数宏,区分编译选项

     上回说到一下关于自定义一些自己项目中所用到的数据类型,那么可以参考上次的文章:
C++ 项目成长 ——自定义数据类型,定义各种类型别名, typedef的部分用法实例

     之后又,我们定义了一些类型之后,有时候会在项目中,需要去动态调试一些情况,判断是否存在空指针,最终得到的某些结果是否是我们期望的判断条件等,那么可以参考上次的文章:C++ 项目成长 —— 自定义系统中使用的Assert工具,类似Q_ASSERT的简化版

     上次我们编写了一个利用Asserter的一些宏,比如TZ_ASSERT, TZ_FAIL_ONCE()的一些工具,具体,见参考链接:自定义平台的定位追踪器

     上回说到,咱们在追踪自己平台中的一些bug的时候,会用到一些追踪器,那么自己写来复现一个追踪器的小类的话,不失为一种学习的过程。具体代码可以参考之前的连接:

TZOpenTools

tzsofts_str_operations.h

///
// Copyright (c)2020, Tom Zhao personal. ("TZOpenTools")
// This software is a personal tools project by Tom Zhao.
// Description:
///

#ifndef _TZ_SOFT_STRING_OPERATIONS_H_H_
#define _TZ_SOFT_STRING_OPERATIONS_H_H_

#include "zsofts_types.h"
#include <wchar.h>
#include <string>

#ifdef TZ_WINDOWS
#include <mbstring.h>
#endif // TZ_WINDOWS

#define tz_stdstring_a std::string
#define tz_stdstring_w std::wstring

#ifdef _UNICODE
#   define tz_stdstring tz_stdstring_w
#   ifndef _ftprintf
#       define _ftprintf fwprintf
#   endif
#   ifndef _ftscanf
#       define _ftscanf fwscanf
#   endif
#   ifndef _tprintf
#       define _tprintf wprintf
#   endif
#else
#   define tz_stdstring tz_stdstring_a
#   ifndef _ftprintf
#       define _ftprintf fprintf
#   endif
#   ifndef _ftscanf
#       define _ftscanf fscanf
#   endif
#   ifndef _tprintf
#       define _tprintf printf
#   endif
#endif // _UNICODE

#define tz_vscprintf					_vsctprintf
#define tz_vstprintf					_vstprintf
#define tz_vstprintf_s				_vstprintf_s
#define tz_stprintf					_stprintf
#define tz_stprintf_s				_stprintf_s
#define tz_ftprintf					_ftprintf
#define tz_ftscanf					_ftscanf
#define tz_printf						_tprintf
#define tz_strlen						_tcslen
#define tz_strcmp					_tcscmp
#define tz_stricmp					_tcsicmp
#define tz_strncmp					_tcsncmp
#define tz_strnccmp				_tcsnccmp
#define tz_strnicmp					_tcsnicmp
#define tz_strcpy						_tcscpy
#define tz_strcpy_s					_tcscpy_s
#define tz_strncpy					_tcsncpy
#define tz_strncpy_s				_tcsncpy_s
#define tz_vtcprintf					_vtcprintf
#define tz_strcat						_tcscat
#define tz_strcat_s					_tcscat_s
#define tz_fullpath					_tfullpath
#define tz_strncat					_tcsncat
#define tz_strstr						_tcsstr
#define tz_strdup					_tcsdup
#define tz_strdup_dbg			_tcsdup_dbg
#define tz_splitpath					_tsplitpath
#define tz_strcpy_s					_tcscpy_s
#define tz_strchr						_tcschr
#define tz_strrchr					_tcsrchr

#define tz_access					_taccess

#define tz_stoi							_tstoi
#define tz_isdigit						_istdigit
#define tz_stscanf					_stscanf
#define tz_islower					_istlower
#define tz_isupper					_istupper
#define tz_toupper					_totupper
#define tz_toupper_l				_totupper_l
#define tz_tolower					_totlower
#define tz_tolower_l				_totlower_l
#define tz_strupr						_tcsupr
#define tz_tcstol						_tcstol
#define tz_tcslwr						_tcslwr
#define tz_strlwr						_strlwr
#define tz_isalpha					_istalpha
#define tz_istspace					_istspace
#define tz_istalnum					_istalnum
#define tz_getenv					_tgetenv

#define tz_mbsinc					_mbsinc
#define tz_ttoi							_tstoi
#define tz_atoi64						atoll
#define tz_mbsninc					_mbsninc
#define tz_mbsdec					_mbsdec
#define tz_ismbclower			_ismbclower
#define tz_ismbcupper			_ismbcupper
#define tz_mbslwr					_mpslwr
#define tz_mbsupr					_mpsupr
#define tz_ismbcspace			_ismbcspace
#define tz_isspace					_istspace
#define tz_ismbcdigit				_ismbcdigit
#define tz_wcsupr					_wcsupr
#define tz_wcslwr					_wcslwr
#define tz_wtoi						_wtoi
#define tz_wtol						_wtol
#define tz_wroi64					_wroi64
#define tz_wtof						_wtof
#define tz_itoa							_itoa
#define tz_itow						_itow
#define tz_itow_s						_itow_s
#define tz_i64toa						_i64toa
#define tz_ui64tow					_ui64toa
#define tz_ltoa							_ltoa
#define tz_ltow						_ltow
#define tz_ltow_s						_ltow_s
#define tz_fcvt							_fcvt
#define tz_mbscmp					_mbscmp
#define tz_mbsncmp				_mbsncmp
#define tz_mbsnicmp				_mbsnicmp
#define tz_mbscoll					_mbscoll
#define tz_mbsncoll				_mbsncoll
#define tz_mbsicoll					_mbsicoll
#define tz_mbsnicoll				_mbsnicoll
#define tz_wcsicoll					_wcsicoll
#define tz_wcsncoll					_wcsncoll
#define tz_wcsnicoll				_wcsnicoll
#define tz_mbsstr					_mbsstr
#define tz_mbsspn					_mbsspn
#define tz_mbscspn				_mbscspn
#define tz_wcscspn					wcscspn
#define tz_mbsrev					_mbsrev
#define tz_wcsrev					_wcsrev
#define tz_mbslen					_mbslen
#define tz_mbscpy					_mbscpy
#define tz_mbscpy_s				_mbscpy_s
#define tz_wcscpy_s				wcscpy_s
#define tz_memcpy_s				memcpy_s
#define tz_wmemcpy_s			wmemcpy_s
#define tz_wmemcpy				wmemcpy
#define tz_vsprintf_s				vsprintf_s
#define tz_vswprintf				vswprintf
#define tz_vswprintf_s				vswprintf_s
#define tz_swprintf					tz_swprintf
#define tz_tsplitpath				_tsplitpath
#define tz_tmakepath				_tmakepath

#endif // !_TZ_SOFT_STRING_OPERATIONS_H_H_

个人格言

    用心去感受你自己需要坚持的生活,未来慢慢会给你答案的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值