-2

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

std::cin  >>  mystring;

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

在 Rexx 中说

abbrev( mystring, masterStr, len ).   

如何在 C++ 中对其进行编码?

4

1 回答 1

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();
}

应该做的伎俩。

于 2013-03-28T16:22:59.893 回答