用char c ++替换pos处的字符串

时间:2013-03-08 04:15:17

标签: c++ string replace char

我正在尝试用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)。请原谅我的一些愚蠢行为,我真的很给予我所承诺的一切。

泰勒

1 个答案:

答案 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;
}