現在のインデックスがどこであっても、文字列から文字を削除する関数を実装しようとしています。以下は私がこれまで持っているものの骨格です。削除したい文字を文字列の末尾に回転し、ヌルターミネーターに置き換えようとしています。以下のコードは、実際にバッファーを回転させていないようですが、出力が "wrd"の代わりに "wor"になっているからです。C++でarrayの最後のn個の要素をローテートします
int main() {
char buffer[]="word";
int currIndex=2;
int endIndex=strlen(buffer);
currIndex--;
endIndex--;
rotate(buffer+currIndex,
buffer+1,
buffer+strlen(buffer));
buffer[endIndex]='\0';
cout << buffer << endl;
return 0;
}
あなたは 'のstd :: STRING'を使用することを許可されていますか? – AndyG
私はあなたの説明を正確に理解していません。 'abcdef'を文字' e'で回転させたいとしましょう。期待される出力は 'efabcd'ですか?私は正しい? – ovanes
あなたの入力で@ovanes私は 'abcdfe'を返すことを期待しています。最後のインデックスをヌルターミネータに設定した後、' abcdf'の最終出力を返します。 – UBears