簡體   English   中英

從 C 中的路徑拆分文件名

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM