1
Я пытаюсь удалить первую 'w' и last 'w' из строки. я удалил первый «ш», но не может удалить последний, и вот мой код:Удалить первый и последний символ «Х» из массива символов
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' с неправильным количеством аргументов. Ваш компилятор должен рассказать вам об этом. Важно понять и исправить все, о чем говорит ваш компилятор. –
Другая проблема заключается в том, что вы можете переполнять буфер 'pstr2', если строка фактически не содержала' w' (не могу сказать точно, поскольку вы не отправляли [MCVE] (http://stackoverflow.com/help/mcve) –