我已經試過那些2個功能,以應對雙方char和wchar_t的模板char和wchar_t的沒有給出匹配成員
C++ count matches regex function that works with both char and wchar_t? C++ regex with char and wchar_t?
對於我的char *它工作正常,但是當它來使用wchar_t *它給出了一個沒有匹配的成員函數調用。我不明白爲什麼...
class myClass
{
int occurrence = 0;
string new_String;
public:
template<typename CharType>
void replaceSubstring(const CharType* find, const CharType* str, const CharType* rep) {
basic_string<CharType> text(str);
basic_regex<CharType> reg(find);
new_String = regex_replace(text, reg, rep);
}
template<typename CharT>
void countMatches(const CharT* find, const CharT* str)
{
basic_string<CharT> text(str);
basic_regex<CharT> reg(find);
typedef typename basic_string<CharT>::iterator iter_t;
occurrence = distance(regex_iterator<iter_t>(text.begin(), text.end(), reg),
regex_iterator<iter_t>());
}
void display()
{
cout << "occurrence " << occurrence << " new string " << new_String << endl;
}
};
int main()
{
const char *str1 = "NoPE NOPE noPE NoPE NoPE";
const wchar_t *str2 = L"NoPE NOPE noPE NoPE NoPE";
myClass test;
test.countMatches("Ni",str1);
test.replaceSubstring("No",str1,"NO");
test.display();
test.countMatches("Ni",str2);
test.replaceSubstring("No",str2,"No");
test.display();
return 0;
}
你能粘貼代碼嗎?已發佈 – 2014-09-04 10:05:29
。正如你所看到的,從其他兩個問題 – UncleSax 2014-09-04 10:10:01
的功能是一樣的,你在哪裏使用'str1'? – 2014-09-04 10:11:57