[轉]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,一定要看清楚,容易混淆)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM