例如,我有一个字符串“/home/george/file.c
”,我想将字符串剪切为“file.c
”,所以只需在最后一个'/
之前删除所有字符串'性格。
答案 0 :(得分:5)
有一个名为basename
的函数可以做到这一点。请参阅man 3 basename
了解如何使用它。
答案 1 :(得分:1)
此处,可以使用strrchr
标题中的<string.h>
。请看its documentation。
#include <string.h>
char *end = strrchr(string, '/') + 1;
char result[SIZE];
if (end != NULL)
strcpy(result, end);
答案 2 :(得分:0)
如果你正在使用字符串库,你可以获得字符串的长度,然后开始向后走,直到你点击你的第一个'/'字符。然后,获取该索引并使用子字符串。
答案 3 :(得分:0)
char *filename = strrchr(path, '/'); // this points `filename` at the final '/'
if (filename) // if that succeeded
++filename; // we want the next character
else // otherwise
filename = path; // what's in path is all the file name.
答案 4 :(得分:0)
您可以使用标头文件basename()
中定义的<libgen.h>
。 basename()
的原型是char *basename(const char *fname);
。它返回指向基本名称开始的原始文件名的指针。
在您的情况下,代码应如下所示,
char ch="/home/george/file.c"
char *ptr;
ptr=basename(ch);
printf("The file name is %s",ptr);