_tcscmp
2015-11-28 09:16
2526 查看
用 _tcscmp 替代 strcmp 或 wcscmp
好处:是可以不管是用unicode 编码还是其他 ,代码都不用改.
C++标准库函数提供了字符和字符串的操作函数,并提供了其UNICODE版本,如:
wcscpy()即为strcpy()的宽字符版本,与_T类似的,Visual C++提供了类似的同名函数:
_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
{
//字符串不相等
}
好处:是可以不管是用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
{
//字符串不相等
}
相关文章推荐
- 手机移动通信-20151118
- 工具链无效。新 App 和 App 更新必须使用公共(正式)版 Xcode 6 或更高版本以及 iOS 8 SDK 或更高版本来构建。请勿提交 Beta 版软件构建的 App。
- Mac OS X El Capitan系统完整性保护System Integrity Protection (SIP)
- 解决方法:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
- DM8148开发学习板
- 约瑟夫环问题
- 我与大话设计模式之代码篇(四)-----外观模式
- iTOL与netsurfp前期处理程序
- WebRTC 简介
- Android之ListView原理学习与优化总结
- 再次唠叨linux中的strings命令
- 史上OC重点最全总结!
- 红烧素鸡
- [LeetCode]Majority Element II
- Android 线程池来管理线程
- 对Android开发者有益的40条优化建议
- android 退出程序解决内存释放的问题
- Linux运维 第五阶段(二)heartbeat V2(HA)
- 对称排序 26
- HTML5实战应用:如何让表单验证更友好