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