假设我从std::cin中读取了 C++ std::string, mystring ,因此:
std::cin >> mystring;
现在我想看看mystring是否是至少len个字符匹配的std::masterStr的任何子字符串。
在 Rexx 中说
abbrev( mystring, masterStr, len ).
如何在 C++ 中对其进行编码?
假设我从std::cin中读取了 C++ std::string, mystring ,因此:
std::cin >> mystring;
现在我想看看mystring是否是至少len个字符匹配的std::masterStr的任何子字符串。
在 Rexx 中说
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();
}
应该做的伎俩。