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

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

1、_tcschr代替strchr或者wcschr
函数功能:查找一个字符串中首次出现的指定字符。

函数原型:
char *strchr(const char* _Str,int _Val)
char *strchr(char* _Str,int _Ch)
头文件:#include <string.h>
功能: 查找字符串s中首次出现字符c的位置
说明: 返回首次出现c的位置的指针,返回的地址是被查找字符串指针开始的第一个与Val相同字符的指针,如果s中不存在c则返回NULL。
返回值:成功则返回要查找字符第一次出现的位置,失败返回NULL
函数原型:wchar_t *wcschr(const wchar_t *ws,wchar_t wc)
头文件:#include<wcschr.h>
说明:在宽字符串ws中查找宽字符wc,然后返回第一个匹配wc的位置即指针,如果没有找到就返回空指针NULL.[]
返回值:成功则返回要查找字符第一次出现的位置,失败返回NULL
_tcschr  

查找字符串中某个字符第一次出现的位置  

两个参数  

第一个参数:字符串  

第二个参数:查找的字符  

返回值:指向第一次在字符串中出现的该字符的指针,如果要查找的字符再串中没有出现,则返回NULL。  

(注:_tcschr支持ANSI和UNICODE,ANSI使用strchr,UNICODE使用wcschr。)

2、_tcsrchr代替strrchr或者wcsrchr

函数功能:查找一个字符串中最后一次出现的指定字符。

函数原型:
char *strrchr( const char *string, int c);
char *wcsrchr( const wchar_t *string, int c ); 参数说明:
第一个参数:字符串 第二个参数:需要查找的字符 功能:查找一个字符串中最后出现的指定字符。 返回值:找出字符串中最后一个出现查找字符的地址,然后将该字符出现的地址返回。

(注:_tcsrchr支持ANSI和UNICODE,ANSI使用strrchr,UNICODE使用wcsrchr。)

===================================================================华丽的分割线===================================================================

_tcsstr:字符串1在字符串2中首次出现的位置,未出现返回NULL值;
_tcsrchr:字符1 在字符串2中首次出现的位置,未出现返回NULL值

TCHAR字符串操作函数:
_tcslen(str) 获得字符串长度
_tcsrchr(str, L'\\') 反向搜索获得最后一个TCHAR的位置
_stprintf(TCHAR *buffer,const TCHAR *format [,argument] ... )获得一个格式化字符串
_tcsdup 给一个指针分配源字符串大小的内存并从源字符串copy值
_tcstok 按标记将字符串拆分
tcscpy 拷贝字符串
  (_TCSRCHR(SZFILEPATH, _T('\\')))[1] = 0

  char szFilePath[MAX_PATH];   GetModuleFileName(NULL, szFilePath, MAX_PATH);    (_tcsrchr(szFilePath, _T('\\')))[1] = 0;

这是一段获得程序当前目录的一段代码

这段代码很简单,唯一有点难度的就是最后一句(_tcsrchr(szFilePath, _T('\\')))[1] = 0;

其实这句可分解为两句话

char *ch = _tcsrchr(szFilePath, _T('\\'));查找最后一个\出现的位置,并返回\后面的字符(包括\)

ch[1] = 0;//NULL  通过操作来操作szFilePath = 将szFilePath截断,截断最后一个\后面的字符(不包括\)。

最新文章

  1. 30天React Native从零到IOS/Android双平台发布总结
  2. 3D滚动下拉菜单-简直不要太任性
  3. 转 How to install XenServer Tools – Linux(forward)
  4. FlashDevelop快捷键
  5. No setter found for property &#39;userDAO&#39; in class &#39;com.ssh.service.impl.User1Service&#39;
  6. Html5新增加的属性
  7. 更换centos源
  8. 制作nginx的rpm包出现问题
  9. 图示CCScrollView的相关概念
  10. 保护模式特权级别DPL,RPL,CPL 之间的联系和区别
  11. sqlserver 存储过程 递归查询分组+hierarchyid重建会员关系
  12. IOS开发之UIView总结1
  13. 微信小程序开发---各代码文件简介
  14. Java集合与泛型中的陷阱
  15. AutoCAD神器! AutoCAD自动切换中英文输入法插件(ZDSRF)
  16. 第28月第23天 lineFragmentPadding
  17. 【Linux】系统基本命令
  18. 作为一名程序员,在面试中如何展现你Python的coding能力?
  19. Java常用测试工具
  20. Java MyBatis insert数据库数据后返回主键

热门文章

  1. EF CodeFirst 初识
  2. Asp.net MVC流程简述
  3. 将windows共享文件夹挂载在linux机器的/mnt/windows/ 目录下进行访问
  4. java工程师_基础_阶段一_HTML笔记篇
  5. js-权威指南学习笔记18
  6. centos文件基本操作
  7. 180217_JAVA学习_TreeSet中存放含多个String的类并设置排序规则
  8. java 内存分析之方法返回值二
  9. springmvc源码解析-初始化
  10. 回归JavaScript基础(三)