我是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。谢谢!
答案 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的好指南,无需退出命令行的安全性。