从C中的路径拆分文件名

时间:2013-09-23 22:42:40

标签: c

我是C新手,但擅长python。我正在寻找C语言中string.split(“/”)[ - 1]函数的功能等价物。到目前为止,我已经能够创建一个具有我整个路径的字符数组。我想拆分该字符串,所以我只有文件名。下面我列出了一个样本

char input_file_path [1024]
strcpy(input_file_path, "/this/is/my/file/path.txt")

我想要一些带有input_file_path的函数,然后从中拆分出path.txt。谢谢!

3 个答案:

答案 0 :(得分:5)

您正在寻找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;
}

Build&amp;运行:

$ make example && ./example
cc     example.c   -o example
path.txt

答案 1 :(得分:0)

http://en.cppreference.com/w/c/string/byte/strtok

点击这里。这也是C和C ++代码的一个很好的参考。

答案 2 :(得分:0)

尝试strtok()

使用命令man strtok查找。 man页面是学习C的好指南,无需退出命令行的安全性。