travaillant sur un projet C++, j'ai besoin d'itérer sur une chaîne (ou char * en fonction de la solution que vous pourriez me fournir!). Donc, fondamentalement, je fais ceci:En utilisant regex_match() sur itérateur avec une chaîne en C++
void Pile::evalExpress(char* expchar){
string express = expchar
regex number {"[+-*/]"};
for(string::iterator it = express.begin(); it!=express.end(); ++it){
if(regex_match(*it,number)){
cout<<*it<<endl;
}
}
}
char expchar[]="234*+";
Pile calcTest;
calcTest.evalExpress(expchar);
l'itérateur fonctionne bien (je peux mettre un Cout < < * il < < « endl au-dessus de l'instruction if et je reçois une sortie correcte)
puis lorsque je tente de compiler:
error: no matching function for call to 'regex_match(char&, std::__cxx11::regex&)'
if(regex_match(*it,number)){
^
je ne sais pas pourquoi cela se passe, j'ai essayé de ne pas utiliser iterator et itérer directement sur le expchar [i] mais j'ai la même erreur avec regex_match(). ..
Cordialement
Vincent
Bonjour, merci pour votre réponse. J'ai été un peu troublé par le & dans le 'char &' ... Je pense que même s'il y a un personnage c'est toujours un char * mais pas du tout. – Gozu09
Cela signifie que c'est une référence à un 'char'. Obtenez un [bon livre sur C++] (https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list). –