Buchstaben umwandeln in Zeichen
-
Ich habe eine Frage. Und zwar möchte ich die Buchstaben eines Namens in Zeichen tauschen. Der Benutzer soll also zum Beispiel Basti eingeben, und Bast! ausgegeben bekommen.
Wie kann ich das machen?
-
Eigentlich sollte man Leetspeeker ja nicht unterstützen, aber ausnahmsweise:
std::string s = "Basti"; // Für einzelne Buchstaben (aus <algorithm>) std::replace (s.begin (), s.end (), 'i', '!');Diese Methode ist aber für viele Ersetzungen ineffektiv, also:
// Ansonsten (allgemeiner) mithilfe einer map: template <typename IteratorT, typename ValueType> void replace_by_map (IteratorT begin, IteratorT end, const std::map<ValueType, ValueType>& map) { typedef typename std::map<ValueType, ValueType>::const_iterator iter; while (begin != end) { iter i; if ((i = map.find (*begin)) != map.end ()) *begin = i->second; ++begin; } } // Aufruf: std::map<char, char> mymap; mymap['i'] = '!'; mymap['e'] = '3'; // etc. replace_by_map (s.begin (), s.end (), mymap);Alles ungetestet, auf Fehler bitte aufmerksam machen

/edit: Schon einer gefunden