我正在尝试用char替换长度为1的子字符串 - 但显然我不能只在那里粘贴一个字符。我可以动态做到这一点吗?如:
for (int j=0; j <= startword.size(); j++) {
for (char i='a'; i < 'z'; i++) {
choices.add(startword.replace(j, 1, string(i));
(但显然不是那样!)
感谢您的帮助,这个答案在c ++的stackoverflow上尚未明确(我认为仅适用于java)。请原谅我的一些愚蠢行为,我真的很给予我所承诺的一切。
泰勒答案 0 :(得分:0)
好吧,在C ++中,字符串是可变的,您可以使用数组运算符:
for (int j=0; j < startword.size(); j++)
{
for (char i='a'; i < 'z'; i++)
{
string newChoice = startword;
newChoice[j] = i;
choices.add(newChoice);
}
}
编辑:无法索引newChoice[startWord.size()]
;改变了for循环条件。
你也可以这样做(如果startword
非常长,可能很有用):
for (unsigned j=0; j < startword.size(); j++)
{
char saveChar = startword[j];
for (char i='a'; i <= 'z'; i++)
{
startword[j] = i;
choices.add(startword);
}
startword[j] = saveChar;
}