1
文字列から最初に 'w'を、最後に 'w'を削除しようとしています。 私が最初に「W」を削除したが、最後の1を削除できませんでしたし、ここに私のコードです:文字配列から最初と最後の 'X'文字を削除します
char str1[80], *pstr1, *pstr2;
cout << "Enter a String:\n";
gets_s(str1);
pstr1 = str1;
pstr2 = new char[strlen(str1)];
int n = strlen(str1) + 1, k = 0, i = 0;
bool s = true;
while (k < n+1)
{
if (strncmp((pstr1 + k), "w", 1) != 0)
{
*(pstr2 + i) = *(pstr1 + k);
i++;
k++;
}
else if(s == true)
{
k++;
s = false;
}
else
{
*(pstr2 + i) = *(pstr1 + k);
i++;
k++;
}
}
引数の数が正しくない場合、gets_sを呼び出します。あなたのコンパイラはこれについてあなたに伝えるべきです。コンパイラがあなたに伝えることを理解し、修正することが重要です。 –
もう1つの問題は、文字列に実際に 'w'が含まれていないと、' pstr2'のバッファがオーバーフローする可能性があるということです([MCVE](http://stackoverflow.com/help/mcve) –