繁体   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