Maciej Hehl est correct à propos de pourquoi vous obtenez un comportement non désiré. Pour obtenir le comportement que vous souhaitez, vous devez ajouter le caractère lui-même, pas un pointeur vers lui. Vous avez raison de dire (dans votre commentaire à la réponse de Kalim) qu'il n'y a pas de dérogation de std::string::append
qui prend juste char
. Cependant, il y a un remplacement std::string::append(std::size_t, char)
, qui ajoute le caractère (deuxième argument) un certain nombre de fois (premier argument).
Ainsi, la manière correcte d'écrire ce que vous voulez serait:
str.append(1, stck.top()); // Append one copy of the character at the top of the stack
Ou encore, il suffit d'utiliser la surcharge pour l'opérateur +=
, qui accepte un char
:
str += stck.top();
grâce, il a travaillé ! – nawriuus