Voilà, comme d’hab je progresse à mon rythme en suivant le cours de C++ de zeste de savoir (actuellement au chapitre sur les conteneurs Parti I)… Bref dans ce petit exercice, j’avais pour but de remplacer les espaces à l’intérieur d’une chaîne de caractères par un caractère quelconque saisie. J’aimerais avoir des retours sur ce code afin de m’améliorer encore plus, et dire si possible, si je peux ajouter certaines choses pour m’entraîner (ou bien des sites dans lesquels je puisse trouver des exos <avec correction> pour débutant). Pour info, j’ai emprunté la petite chaîne de caractères de ce tutoriel, n’y voyez pas noir . Merci en avance…
Voici le code :
#include <iostream>
#include <string>
#include <algorithm>
int main ()
{
std::string p { "Exemple illustrant le tutoriel C++ de zeste de savoir." };
char espace { ' ' };
std::cout << "Entre un caractere : ";
char caractere { '_' };
std::cin >> caractere;
std::string::iterator it_debut_sequence { p.begin() };
std::string::iterator it_fin_sequence { p.end() };
for (std::string::iterator it { p.begin() }; it != it_fin_sequence; ++it)
{
std::string::iterator it_find { std::find(it_debut_sequence, it_fin_sequence, espace) };
if (* it_find == espace)
{
* it_find = caractere;
it_debut_sequence = it_find;
}
else
{
break;
}
}
std::cout << p << std::endl;
return 0;
}
Je ne sais pas si je peux sécuriser l’entré utilisateur dans ce cas de figure… Même si je rentre tout et n’importe quoi, un tronque s’effectue automatiquement sans que j’interviens, du coup ça m’arrange un peu.