[英]Split a file name from a path in C
我是 C 的新手,但精通 python。我正在尋找 C 中 string.split("/")[-1] function 的功能等價物。到目前為止,我已經能夠制作一個包含我的全部內容的字符數組小路。 我想拆分那個字符串,所以我只有文件名。 下面我提供了一個示例
char input_file_path [1024]
strcpy(input_file_path, "/this/is/my/file/path.txt")
我想要一些 function,它將采用 input_file_path 並從中拆分出 path.txt。 謝謝!
您正在尋找basename(3)
:
的
basename()
函數返回從路徑名的最后一個組件所指向的路徑 ,刪除任何尾隨“/
”字符。
例:
#include <libgen.h>
#include <stdio.h>
int main(void)
{
char path[] = "/this/is/my/file/path.txt";
char *file = basename(path);
printf("%s\n", file);
return 0;
}
構建並運行:
$ make example && ./example
cc example.c -o example
path.txt
http://en.cppreference.com/w/c/string/byte/strtok
在這里檢查。 這也是C和C ++代碼的很好參考。
嘗試strtok()
。
使用man strtok
命令查找它。 man
頁是學習C的絕佳指南,而無需退出命令行安全性。
除了 Posix 上的basename
之外,您還可以在 Windows 上使用splitpath以有條件地支持多個平台。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.