[转]C++字符串操作函数_tcschr、_tcsrchr

时间:2019-11-27
本文章向大家介绍[转]C++字符串操作函数_tcschr、_tcsrchr,主要包括[转]C++字符串操作函数_tcschr、_tcsrchr使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

原文出处: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,一定要看清楚,容易混淆)。

原文地址:https://www.cnblogs.com/MakeView660/p/11942638.html