Verwenden Sie den folgenden Code, um die Buchstaben nach dem Zufallsprinzip zu generieren.
const int stl = str.size();
int stl2 = stl;
while (stl2 >= 0)
{
int r = rand() % stl;
if (str[r] != '0')
{
cout<<" "<<str[r];
str[r] = '0';
stl2--;
}
}
Dieser Code generiert im Grunde die Zufallszahl basierend auf der Größe der Zeichenfolge und druckt dann das Zeichen an dieser bestimmten Position der Zeichenfolge. Um das erneute Drucken von bereits gedruckten Zeichen zu vermeiden, habe ich das gedruckte Zeichen in "0" umgewandelt, damit beim nächsten Mal die gleiche Positionsnummer generiert wird, wird geprüft, ob das Zeichen "0" ist oder nicht.
Wenn Sie die ursprüngliche Zeichenfolge beibehalten müssen, können Sie die Zeichenfolge in eine andere Variable kopieren und im Code verwenden.
Hinweis: Es wird angenommen, dass die Zeichenfolge nur alphabetische Zeichen enthält. Um eine Wiederholung zu vermeiden, wird daher "0" verwendet. Wenn Ihre Zeichenfolge Zahlen enthalten kann, können Sie für Vergleichszwecke ein anderes Zeichen verwenden
Haben Sie 'std :: shuffle' überprüft? – Arunmu
Sie möchten wahrscheinlich überprüfen, dass Ihr Shuffle mehr als das erste und letzte "T" vertauscht hat. Mit anderen Worten, mischen Sie, bis sich Ihr gemischtes Wort von der Eingabe unterscheidet. – MSalters