例如,我有一个字符串“ /home/george/file.c
”,我想将字符串剪切为“ file.c
”,所以只需去掉最后一个' /
'字符之前的所有字符串。
问问题
147 次
5 回答
5
有一个函数basename
可以做到这一点。看看man 3 basename
如何使用它。
于 2013-05-30T17:38:07.637 回答
1
在这里,可以使用strrchr
from <string.h>
header。查看它的文档。
#include <string.h>
char *end = strrchr(string, '/') + 1;
char result[SIZE];
if (end != NULL)
strcpy(result, end);
于 2013-05-30T17:38:20.307 回答
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);
于 2013-05-30T17:55:01.873 回答
0
如果您使用的是字符串库,您可以只获取字符串的长度,然后开始向后走,直到您遇到第一个“/”字符。然后,获取该索引并使用子字符串。
于 2013-05-30T17:38:17.170 回答
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.
于 2013-05-30T17:38:25.417 回答