gpt4 book ai didi

c++ - dirname(php) 类似c++中的函数

转载 作者:太空宇宙 更新时间:2023-11-04 15:52:53 24 4
gpt4 key购买 nike

在c++中有没有类似于php中的dirname的函数...它是用来规范化url的

eg
<?php
$url = "../tets/index.html";
$currentURL = "http://example.com/somedir/anotherdir";
echo dirname($currentURL).substr($url, 2);
?>

最佳答案

不,但是自己实现它很简单。

std::string DirName(std::string source)
{
source.erase(std::find(source.rbegin(), source.rend(), '/').base(), source.end());
return source;
}

更好的方法是将其实现为方法模板:

template<typename string_t>
string_t DirName(string_t source)
{
source.erase(std::find(source.rbegin(), source.rend(), '/').base(), source.end());
return source;
}

编辑:出于某种原因,如果您想要@larsmans 在下面的评论中谈论的内容:

template<typename string_t>
string_t DirName(string_t source)
{
if (source.size() <= 1) //Make sure it's possible to check the last character.
{
return source;
}
if (*(source.rbegin() + 1) == '/') //Remove trailing slash if it exists.
{
source.pop_back();
}
source.erase(std::find(source.rbegin(), source.rend(), '/').base(), source.end());
return source;
}

关于c++ - dirname(php) 类似c++中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5077693/

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