我想知道如何用函数式编程语言做到这一点。也许是 F# 或 Haskell。
有人可以向我展示一个示例,而不使用除find
and之外的任何函数调用rfind
吗?
此函数使用(<0 表示向后)i
的数量来查找下一个斜线。slash
size_t findSlash(const char *sz, size_t i)
{
std::string s = sz;
size_t a, b, c, n, ai = abs(i), pos=0;
for (n=0; n<ai; n++)
{
if (i<0)
{
a = s.rfind("\\", pos);
b = s.rfind("/", pos);
}
else
{
a = s.find("\\", pos);
b = s.find("/", pos);
}
if (a==-1u)
{
if (b==-1u)
return pos;
c = b;
}
else if (b==-1u)
c = a;
else
c = min(a, b);
pos = c+1;
}
return c;
}