string word1 = "misisipi";
string word2 = "mississippi";
我想以某种方式“比较”这些字符串,并能够“扔掉”不常见的字母。例如 word2 将被缩减为"misisipi"
,确保保持 'S' 的顺序,并且word1
不会更改,因为它的所有字符都在word2
. 我知道如何删除字符串中的元素,但这次我想保持顺序。例如,如果我不维护顺序,比较后word2
会是"missipi"
,这不是我想要的。
string word1 = "misisipi";
string word2 = "mississippi";
我想以某种方式“比较”这些字符串,并能够“扔掉”不常见的字母。例如 word2 将被缩减为"misisipi"
,确保保持 'S' 的顺序,并且word1
不会更改,因为它的所有字符都在word2
. 我知道如何删除字符串中的元素,但这次我想保持顺序。例如,如果我不维护顺序,比较后word2
会是"missipi"
,这不是我想要的。
尝试word2
在word1
遍历word1
.
std::string temp;
std::string::iterator w2 = word2.begin();
for(std::string::iterator w1 = word1.begin(); w1 != word1.end(); ++w1)
{
for(; w2 != word2.end(); ++w2) // Move through word2...
{
if(*w1 == *w2) // Copy the character into temp when found.
{
temp += *w2;
break;
}
}
}
std::cout << temp << std::endl;
temp
如果您想要速度,可能要预先分配。