_tcscmp

用 _tcscmp 替代 strcmp 或 wcscmp


好处:是可以不管是用unicode 编码还是其他 ,代码都不用改.


C++标准库函数提供了字符和字符串的操作函数,并提供了其UNICODE版本,如:

在 tchar.h 定义

1、char *strcpy(char *strDestination, const char *strSource);  
2、wchar_t *wcscpy(wchar_t *strDestination, const wchar_t *strSource); 

wcscpy()即为strcpy()的宽字符版本,与_T类似的,Visual C++提供了类似的同名函数:

#ifdef  UNICODE   
    #define _tcscpy     wcscpy  
#else  
    #define _tcscpy     strcpy  
#endif 

_tcscpy 在编译时会根据条件被替换, 如果是 ANSI工程,则使用 strcpy ,如果是UNICODE 工程,则使用wcscpy。



详细说明:


C++中对于数字类型的数据我们可以直接使用"=="即可比较是否相等,但是对于字符串的比较并不适用。我们可以利用以下的两个函数来比较两个字符串是否相等

1、strcmp

      这是用于ANSI标准字符串的函数(如string和char *),此函数接受两个字符串缓冲区做为参数,如果两个字符串是相同的则返回零。否则若第一个传入的字符串的值大于第二个字符串返回值将会大于零,若传入的第一个字符串的值小于第二个字符串返回值将小于零。

char *ch="翔翔糖糖";
if(strcmp(ch,"翔翔糖糖")==0)
{
    //字符串相等
}
else
{
    //字符串不相等
}

 

2、wcscmp

      这个函数是strcmp所对应的Unicode系列的函数,它的使用方法和strcmp相同,它用来比较两个Unicode字符串是否相等(如wstring和wchar_t *)。

wchar_t *ch=L"翔翔糖糖";
if(wcscmp(ch,L"翔翔糖糖")==0)
{
    //字符串相等
}
else
{
    //字符串不相等
}

 

      :以上所介绍的比较字符串是否相等的函数对于英文来说是要区分大小写的,即使字母都相同但是大小写不同,函数也会认为这两个字符串是不同的。

       前面介绍了如何比较两个字符串是否相等,那是要区分大小写的。今天也介绍两个判断字符串是否相等的函数,不同的是它们不会区分大小写,即函数不会区分字符串的大小写是否相同,只要每个字母相同就可以了。

1、stricmp

      这是用于ANSI标准字符串的函数(如string和char *),此函数接受两个字符串缓冲区做为参数,如果两个字符串是相同的则返回零,不区分大小写。否则若第一个传入的字符串的值大于第二个字符串返回值将会大于零,若传入的第一个字符串的值小于第二个字符串返回值将小于零。

char *ch="AbcD";
if(stricmp(ch,"aBCd")==0)
{
    //字符串相等
}
else
{
    //字符串不相等
}

 

2、wcsicmp

      这个函数是stricmp所对应的Unicode系列的函数,它的使用方法和stricmp相同,它用来比较两个Unicode字符串是否相等,不区分大小写(如wstring和wchar_t *)。

wchar_t *ch=L"AbcD";
if(wcsicmp(ch,L"aBCd")==0)
{
    //字符串相等
}
else
{
    //字符串不相等
}


 


  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值