我试图弄清楚如何一次从字符串中删除一个字符,以便我可以获得一次只丢失一个字符的字符串的所有版本。这就是我试图做的工作,但无济于事。
for(int i = 0 ; i < s.length() ; i++){
tmp.erase(0, i);
std::cout << tmp << std::endl;
s.at(i)++;
}
它显然适用于第一个,但随后删除了其余部分。 JON 的预期输出应该是 ON JN JO
原文由 Gman 发布,翻译遵循 CC BY-SA 4.0 许可协议
最简单的方法是每次复制字符串,并修改副本:
For correctness, the index variable should be a
std::string::size_type
, what bothlength()
andsize()
return (withsize_t
andsize()
自然属于一起)。您的代码几乎是正确的,只是它忽略了每次都复制字符串,而且
s.at(i)++
不属于那里。