好处:是可以不管是用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.[1]   
返回值:成功则返回要查找字符第一次出现的位置,失败返回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截断,截断最后一个\后面的字符(不包括\)。

  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截断,截断最后一个\后面的字符(不包括\)。

相关文章:

  • 2021-08-18
  • 2021-11-23
  • 2021-09-27
  • 2021-10-14
  • 2021-09-09
  • 2021-10-08
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-03
  • 2022-12-23
  • 2021-07-27
  • 2021-09-30
相关资源
相似解决方案