Dans le code suivant, j'utilise un pointeur vers une chaîne C++ dans la fonction change(). Y at-il une façon d'utiliser les opérateurs de la classe de chaînes lorsque vous travaillez avec un pointeur sur une chaîne?Pointeur vers une chaîne C++
Par exemple, at() fonctionne pour l'opérateur [], mais est-il possible d'utiliser l'opérateur []?
#include <string>
#include <iostream>
using namespace std;
void change(string * s){
s->at(0) = 't';
s->at(1) = 'w';
// s->[2] = 'o'; does not work
// *s[2] = 'o'; does not work
}
int main(int argc,char ** argv){
string s1 = "one";
change(&s1);
cout << s1 << endl;
return 0;
}
's * [2]' est proche, mais pas assez près. Vous vouliez écrire '(* s) [2]'. Les opérateurs de Postfix se lient toujours plus fort que les opérateurs de préfixe, donc vous devez utiliser une parenthèse autour de '* s'. – sellibitze