【问题标题】:How to remove the last part of a file path如何删除文件路径的最后一部分
【发布时间】:2018-05-17 14:48:50
【问题描述】:

我需要删除文件路径的最后一部分。

例如,如果我有这个文件名"user/doc/file1",我希望能够得到"user/doc/"

【问题讨论】:

  • “PS 我的 qsn 与推荐的解决方案不同” - 如果您要求 realpath(".") 并获取返回路径的最后两个元素,我认为您有一个解决方案。 如果我理解你的要求正确,那就是!
  • 如果您的问题有所不同,请说明方法,并说明您要做什么:)
  • 请详细说明你的问题,真的不清楚你在问什么。由于您的问题在这里,我只想回答:“从user/doc/.. 中删除.. 以获得user/doc/
  • @MichaelWalz 是的,你理解我的问题。有任何 C 库可以进行该解析吗?使用带有分隔符“..”的 strtok 有效吗?
  • @Samun 所以你的问题完全是误导。您是在问这个:“我有一个以".." 结尾的字符串。如何从字符串末尾删除".."?示例:原始字符串"user/doc/..",我想要的字符串:"user/doc/"。跨度>

标签: c


【解决方案1】:

你可能想要这个:

#include <stdio.h>
#include <string.h>

int main()
{
  char string[] = "/user/doc/file1";

  // find pointer to last '/' in string
  char *lastslash = strrchr(string, '/');

  if (lastslash)           // if found
    *(lastslash + 1) = 0;  //   terminate the string right after the '/'

  printf ("string = %s\n", string);
}

输出

string = /user/doc/

【讨论】:

  • 非常感谢。这正是我想做的事
  • 如果用户输入“/user/doc/”,您需要决定结果应该是什么。应该是“/user/”还是“/user/doc/”?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-11
  • 2017-09-30
  • 2010-09-12
相关资源
最近更新 更多