Я хочу проверить, является ли строка строго подмножеством другой строки. Для этого я использовал boost::contains и я сравниваю размер строки следующим образом:Как проверить, является ли строка подходящим подмножеством другой строки
#include <boost/algorithm/string.hpp>
#include <iostream>
using namespace std;
using namespace boost::algorithm;
int main()
{
string str1 = "abc news";
string str2 = "abc";
//strim strings using boost
trim(str1);
trim(str2);
//if str2 is a subset of str1 and its size is less than the size of str1 then it is strictly contained in str1
if(contains(str1,str2) && (str2.size() < str1.size()))
{
cout <<"contains" << end;
}
return 0;
}
Есть ли лучший способ решить эту проблему? Вместо того, чтобы сравнивать размер строк?
Пример
- АВС является подмножеством ABC News
- ABC не является собственным подмножеством АВС
Почему бы не просто использовать 'зЬй :: строка :: find'? – Lingxi
похоже ли это на подходящее подмножество? –
Я бы отменил тесты (т. Е. Проверил размер * перед * вызовом 'contains()'), кроме этого, я не думаю, что вы можете сделать это лучше. – Nim