-2

したがって、 std::cinからC++ std::string, mystringを読み取ったとしましょう:

std::cin  >>  mystring;

ここで、 mystringが少なくともlen文字が一致するstd::masterStrの部分文字列であるかどうかを確認したいと思います。

Rexx idで言えば

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 に答える