发布时间:2025-12-09 11:56:16 浏览次数:1
原文出处: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。)
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 #endif10 path = bufPath;11 }