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