0

例如,我有一个字符串“ /home/george/file.c”,我想将字符串剪切为“ file.c”,所以只需去掉最后一个' /'字符之前的所有字符串。

4

5 回答 5

5

有一个函数basename可以做到这一点。看看man 3 basename如何使用它。

于 2013-05-30T17:38:07.637 回答
1

在这里,可以使用strrchrfrom <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 回答