したがって、 std::cinからC++ std::string, mystringを読み取ったとしましょう:
std::cin >> mystring;
ここで、 mystringが少なくともlen文字が一致するstd::masterStrの部分文字列であるかどうかを確認したいと思います。
Rexx idで言えば
abbrev( mystring, masterStr, len ).
C++ でコーディングするにはどうすればよいですか?
したがって、 std::cinからC++ std::string, mystringを読み取ったとしましょう:
std::cin >> mystring;
ここで、 mystringが少なくともlen文字が一致するstd::masterStrの部分文字列であるかどうかを確認したいと思います。
Rexx idで言えば
abbrev( mystring, masterStr, len ).
C++ でコーディングするにはどうすればよいですか?
次のようなものがトリックを行いますか:
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();
}
トリックを行う必要があります。