gpt4 book ai didi

c++ - 拆分绝对文件路径

转载 作者:行者123 更新时间:2023-11-30 00:47:11 27 4
gpt4 key购买 nike

我正在为一项学校作业编写 C++ 程序。在某些时候,这个问题要求我更改目录,我知道该怎么做。但是,用户将向程序提供文件的绝对路径。我要做的是将目录更改为该文件所在的目录。例如,如果我在目录 dir2 中,并且用户想要转到文件

     /home/dir1/dir2/dir3/dir4/file

我想做

     int ret = chdir("home/dir1/dir2/dir3/dir4");

我的问题是如何将用户给定的字符串拆分成

     /home/dir1/dir2/dir3/dir4/

     file

编辑我想通了。我首先将绝对路径名从 const char* 转换为字符串。然后我使用 .find_last_of("/") 字符串成员来查找字符串中最后一个“/”的位置。然后我使用 .substr() 成员获取从 0 到 .find_last_of 返回的位置的子字符串

最佳答案

将您的路径放入 std::string 中,然后您可以执行如下操作。

std::string path = "/home/person/dir/file";
std::size_t botDirPos = path.find_last_of("/");
// get directory
std::string dir = path.substr(0, botDirPos);
// get file
std::string file = path.substr(botDirPos, path.length());
// change directory.
chdir(dir.c_str());

关于c++ - 拆分绝对文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35530092/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com