Ich empfehle die std::string
Methode find_first_of
zu verwenden.
Zum Beispiel
#include <iostream>
#include <string>
int main()
{
std::string s("Hola Pepe, com va la vida");
std::string t("aeiou");
char c = '*';
std::cout << s << std::endl;
for (std::string::size_type pos = 0;
(pos = s.find_first_of(t, pos)) != std::string::npos;
++pos)
{
//s.replace(pos, 1, 1, c);
s[pos] = c;
}
std::cout << s << std::endl;
}
Die Programmausgabe ist
Hola Pepe, com va la vida
H*l* P*p*, c*m v* l* v*d*
Wenn Standard-Algorithmen verwenden, dann denke ich, die am besten geeigneten Algorithmus in diesem Fall std::replace_if
ist. Zum Beispiel
#include <iostream>
#include <string>
#include <set>
#include <algorithm>
int main()
{
std::string s("Hola Pepe, com va la vida");
std::set<char> t({ 'a', 'e', 'i', 'o', 'u' });
char c = '*';
std::cout << s << std::endl;
std::replace_if(s.begin(), s.end(),
[&t](char c) { return t.count(c); }, c);
std::cout << s << std::endl;
}
Das Programm Ausgabe ist das gleiche wie oben
Hola Pepe, com va la vida
H*l* P*p*, c*m v* l* v*d*
Warum durch die ganze Zeichenfolge einfach nicht gezeigt iterieren und den Charakter bei Bedarf ändern? – alexeykuzmin0
Bitte zeigen Sie uns, was Sie bisher versucht haben. SO ist kein Code-Schreibservice, Bitte lesen Sie auch http://StackOverflow.com/Help/How-to-Ark und http://StackOverflow.com/Help/Mcve –
@Kinyu 96 Verwenden Sie die Methode find_first_of –