我必须编写一个函数,它接受一个字符串并返回字符串中所有缺少的字母。下面的功能似乎很简单,但它没有返回任何东西。任何提示?
string getMissingLetters(const string& sentence)
{
string alphabet = "abcdefghijklmnopqrstuvwxyz";
string sent = sentence;
transform(sent.begin(), sent.end(), sent.begin(), ::tolower);
for(unsigned int i = 0; i < sent.size(); i++)
for(unsigned int j = 0; j < alphabet.size(); j++)
{
if(sent[i] == alphabet[j])
{
alphabet.erase(i);
j--;
}
}
return alphabet;
}
答案 0 :(得分:1)
你需要
alphabet.erase(j,1);
删除位置j处的单个字符。
答案 1 :(得分:0)
alphabet.erase(i)
应该是alphabet.erase(j)
查看当前代码的作用:
外循环检查句子的第一个字母,然后,如果内循环在字母表中找到它,它将删除&#34; a&#34;从字母表。如果它仍在字母表中,则删除&#34; b&#34;,依此类推。如果有&#34; z&#34;在你的句子中,整个字母将永远被删除。