【发布时间】:2017-10-26 09:40:15
【问题描述】:
在一个 c++ 项目上工作,我需要迭代一个字符串(或 char* 取决于您可以提供给我的解决方案!)。所以基本上我正在这样做:
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);
迭代器运行良好(我可以在 if 语句上方放置一个 cout
然后当我尝试编译时:
error: no matching function for call to 'regex_match(char&, std::__cxx11::regex&)'
if(regex_match(*it,number)){
^
我不知道为什么会发生这种情况,我尝试不使用迭代器并直接在 expchar[i] 上进行迭代,但 regex_match() 出现相同的错误...
问候
文森特
【问题讨论】: