截断一个字符串

时间:2011-08-15 11:25:52

标签: c linux string

我有

char *path;

我将字符串“/home/juggler/file1.txt”存储在路径中。如何截断路径以便我只拥有最后一个文件/目录的父级?在示例中,我想将路径截断为“/ home / juggler”

我在考虑计算从结尾到最后一个“/”的字符数(计数),并将(路径长度) - (计数)复制到另一个字符串。

谢谢

2 个答案:

答案 0 :(得分:4)

尝试使用dirname(3),因为您使用的是Linux。由SUSv3指定,它非常便携。

char *dirname(char *path);
     

在通常情况下,dirname()返回字符串,但不是   包括,最后的'/'。

答案 1 :(得分:1)

您应该在dirname()

中使用libgen.h
#include <libgen.h>
#include <stdio.h>

int main()
{
    printf("%s\n", dirname("/home/juggler/file1.txt"));
    return 0;
}

阅读dirname的联机帮助页以获取更多信息。