C/C++ strrchr 用法與範例

本篇 ShengYu 介紹 C/C++ strrchr 用法與範例,strrchr 是從字串右側開始向左搜尋字元的函式,以下介紹如何使用 strrchr 函式。

C/C++ 要從字串右側開始搜尋字元可以使用 strrchr 來完成,要使用 strrchr 的話需要引入的標頭檔 <string.h>,如果要使用 C++ 的標頭檔則是引入 <cstring>
strrchr 函式原型為

1
char * strrchr(const char * str, int character);

strrchr() 會從 str 字串右側開始搜尋 character 字元,有找到會回傳指向 character 字元的指標,沒找到會回傳 NULL,來看看下面的 strrchr 用法範例吧!

cpp-strrchr.cpp
1
2
3
4
5
6
7
8
9
10
11
// g++ cpp-strrchr.cpp -o a.out
#include <stdio.h>
#include <string.h>

int main() {
char str[] = "This is a c-style string";
char *pch;
pch = strrchr(str, 's');
printf("found at %d\n", pch-str+1);
return 0;
}

結果如下,字串從右側找到第一個的 s 字元在第 19 字元,

1
found at 19

另外 strrchr 也很常被用來去除路徑中的 '/' 字元進而得到檔案名稱,Windows 下則是 '\\',如下範例所示,

cpp-strrchr2.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
// g++ cpp-strrchr2.cpp -o a.out
#include <stdio.h>
#include <string.h>

int main() {
char path[] = "/full/path/to/file.c";
char *pch;
pch = strrchr(path, '/');
printf("found at %d\n", pch-path+1);
printf("filename = %s\n", pch+1);

return 0;
}

結果如下,

1
2
found at 14
filename = file.c

以上就是 C/C++ strrchr 的用法與範例介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!

其它參考
strrchr - C++ Reference
https://www.cplusplus.com/reference/cstring/strrchr/

其它相關文章推薦
如果你想學習 C++ 相關技術,可以參考看看下面的文章,
C/C++ strchr 用法與範例
C/C++ 新手入門教學懶人包
C/C++ 字串搜尋的3種方法
C/C++ strstr 用法與範例
C/C++ strcmp 用法與範例
C/C++ strcat 用法與範例