1
İlk önce 'w' ve son 'w' bir dizeden silinmeye çalışıyorum.Karakter dizisinden ilk ve son 'X' karakterini sil
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++;
}
}
Yanlışlıkla ilgili sayıda argümanı olan 'gets_s' öğesini çağırırsınız. Derleyiciniz bundan bahsetmeli. Derleyicinizin size anlattığı her şeyi anlamak ve düzeltmek önemlidir. –
Başka bir sorun, dize aslında herhangi bir "w" içermediyse, pstr2'nin arabellek taşmasına neden olabilirsiniz ([MCVE] (http://stackoverflow.com/help/mcve) göndermediğinden emin olamaz (http://stackoverflow.com/help/mcve) –