C ++ std :: string与缩写比较

时间:2013-03-28 16:11:48

标签: c++

假设我已经从 std :: cin 中读取了一个C ++ std :: string, mystring ,因此:

std::cin  >>  mystring;

现在我想看看 mystring std :: masterStr 的任何子字符串,至少 len 字符匹配。

在Rexx id中说

abbrev( mystring, masterStr, len ).   

如何用C ++编写代码?

1 个答案:

答案 0 :(得分:1)

以下内容可以解决这个问题:

bool
isAbbrev( std::string const& toTest, std::string const& master, int minLength )
{
    return toTest.size() >= minLength
        && toTest.size() <= master.size()
        && std::equal( toTest.begin(), toTest.end(), master.begin() ) ;
}

这在开始时找到匹配项,就像Rexx中的函数一样。如果 你想在任何地方找到匹配:

bool
isAbbrev( std::string const& toTest, std::string const& master, int minLength )
{
    return toTest.size() >= minLength
        && std::search( master.begin(), master.end(),
                        toTest.begin(), toTest.end() )
                != master.end();
}

应该做的伎俩。