原文出处:https://blog.csdn.net/eickandy/article/details/50083169
C++标准库函数提供了字符和字符串的操作函数,并提供了其UNICODE版本,本文介绍_tcschr和_tcsrchr,名字很相似,就差一个字母r。
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。)
3、应用(获取模块路径)
1 inline void getModulePath(CString &path)
2 {
3 char bufPath[1024] = {0};
4 #if defined(_WIN64)
5 ::getModuleFileNameA(nullptr, bufPath, 1024);
6 (strrchr(bufPath, '\'))[1] = 0;
7 #else
8 getcwd(bufPath, 1024);
9 #endif
10 path = bufPath;
11 }
以上代码获取去掉文件名后的目录路径,如果要获取盘符根路径,使用strchr即可(这两个函数就差一个字母r,一定要看清楚,容易混淆)。