1
Ich versuche, das erste' w 'und das letzte' w 'aus einer Zeichenfolge zu löschen. Ich löschte den ersten ‚w‘, konnte aber die letzte nicht löschen, und hier ist mein Code:Lösche das erste und letzte 'X'-Zeichen aus dem Zeichenfeld
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++;
}
}
Sie rufen 'gets_s' mit falscher Anzahl von Argumenten auf. Dein Compiler sollte dir davon erzählen. Es ist wichtig, alles zu verstehen und zu beheben, von dem dein Compiler erzählt. –
Ein weiteres Problem ist, dass Sie den Puffer von 'pstr2' überlaufen lassen könnten, wenn der String kein' w' enthält (kann nicht mit Sicherheit sagen, da Sie [MCVE] nicht gepostet haben (http://stackoverflow.com/help/mcve) –