0

長さ1の部分文字列をcharに置き換えようとしていますが、明らかにcharをそこに貼り付けることはできません。その場でこれを行うことはできますか?のように:

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についてのみだと思います)。ここでいくつかのn00bishnessを許してください、私は本当にそれに約束するすべてを与えています。

タイラー

4

1 に答える 1

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;
}
于 2013-03-08T05:00:35.390 に答える