1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| /* il nous faut la position du premier caractère à transformer */
size_t pos = str.find("une");
/* Il existe deux versions de toupper, nous définissons un pointeur de
* fonction pour préciser laquelle nous utilisons ici
*/
int (*pf)(int)=std::toupper;
/* le argument est un itérateur sur la position de départ de la source,
* le second est un itérateur sur la position de fin de la source,
* le troisième est un itérateur sur la position de départ de la destination
* le dernier est (un pointeur sur) la fonction unaire à effectuer
*
*/
std::transform(str.begin()+pos,str.begin()+(pos+3),str.begin()+pos, pf);
/* juste pour montrer que ca s'est bien passé */
std::cout<<str<<std::endl; |
Partager