Veuillez m'aider a resoudre ce probleme
ultra3omda
Messages postés
22
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
j'aimerai avoir un programme c++ qui remplace la première occurence d'une chaine de caracteres ch1 par la chaine ch2 dans une chaine de caracteres DEBUT. en utilisant une chaine de sauvegarde FIN pendant le remplacement
exemple:
IE ARTE PIERRE PARTERRE
TOT FIN TOTALEMENT FINALEMENT
j'aimerai avoir un programme c++ qui remplace la première occurence d'une chaine de caracteres ch1 par la chaine ch2 dans une chaine de caracteres DEBUT. en utilisant une chaine de sauvegarde FIN pendant le remplacement
exemple:
IE ARTE PIERRE PARTERRE
TOT FIN TOTALEMENT FINALEMENT
A voir également:
- Votre publication n’a pas pu être partagée. veuillez réessayer. instagram
- Brouillon publication instagram - Guide
- Je ne peux pas partager une publication instagram en story ✓ - Forum Instagram
- Veuillez patienter quelques minutes avant de réessayer instagram ✓ - Forum Instagram
- Nous n'avons pas pu nous connecter à ce réseau ✓ - Forum Livebox
- Réessayer plus tard instagram ✓ - Forum Instagram
2 réponses
Tu peux utiliser string::replace (et tu auras sûrement besoin de string::find_first_of)
bool remplacer(std::string &mot, const std::string &sousmotavant, const std::string sousmotapres)
{
unsigned n = mot.find_first_of(sousmotavant);
if (n == std::string::npos)
return false;
mot.replace(n,sousmotavant.size(),sousmotapres);
return true;
}
int main()
{
std::string s1="PIERRE";
remplacer(s1,"IE","ARTE");
std::cout << s1.c_str() << std::endl; // PARTERRE
std::string s2="TOTALEMENT";
remplacer(s2,"TOT","FIN");
std::cout << s2.c_str() << std::endl; // FINALEMENT
return 0;
}
merçi Kx mais je suis encore débutant j'aimerai avoir un programme simple juste avec les fonction strlen etc... on a pa encore vu ces string::replace etc...
Et bien, il te faut créer des équivalents "simples" des fonctions que tu n'as pas vu...
find_first_of est relativement simple à reproduire.
Pour replace une façon de faire serait de découper (avec string::substr ou un équivalent) ta chaîne en 3 morceaux : le début de ta chaîne, la sous-chaîne à enlever, et la fin de la chaîne.
Puis tu concaténes (avec string::append ou un équivalent) le début de la chaîne avec la sous-chaîne à remplacer, et la fin de la chaîne...
find_first_of est relativement simple à reproduire.
Pour replace une façon de faire serait de découper (avec string::substr ou un équivalent) ta chaîne en 3 morceaux : le début de ta chaîne, la sous-chaîne à enlever, et la fin de la chaîne.
Puis tu concaténes (avec string::append ou un équivalent) le début de la chaîne avec la sous-chaîne à remplacer, et la fin de la chaîne...