Я пытаюсь заменить несколько символов в строке, используя std :: tr1 :: regex, так как я не могу найти функцию, которая может помочь заменить их. Код выглядит следующим образом:
// Example program
#include <iostream>
#include <string>
#include <tr1/regex>
void f1()
{
std::string str = "ÿûABC";
std::tr1::regex rx("ÿû");
std::string replacement = "";
std::tr1::regex_replace(str,rx,replacement);
}
int main()
{
f1();
return 0;
}
Но я получаю приведенную ниже ошибку компиляции. Может ли кто-нибудь предложить, если есть какие-либо, чтобы решить эту проблему или любой лучший вариант заменить их с помощью C ++ 98?
In file included from 4:0:
/usr/include/c++/4.9/tr1/regex:2407:5: warning: inline function '_Out_iter std::tr1::regex_replace(_Out_iter, _Bi_iter, _Bi_iter, const std::tr1::basic_regex&, const std::basic_string&, std::tr1::regex_constants::match_flag_type) [with _Out_iter = std::back_insert_iterator >; _Bi_iter = __gnu_cxx::__normal_iterator >; _Rx_traits = std::tr1::regex_traits; _Ch_type = char; std::tr1::regex_constants::match_flag_type = std::bitset]' used but never defined
regex_replace(_Out_iter __out, _Bi_iter __first, _Bi_iter __last,
^
/tmp/ccGJXgKd.o: In function `f1()':
:(.text+0x81): undefined reference to `std::tr1::basic_regex >::_M_compile()'
:(.text+0xc5): undefined reference to `std::back_insert_iterator std::tr1::regex_replace, __gnu_cxx::__normal_iterator, std::tr1::regex_traits, char>(std::back_insert_iterator, __gnu_cxx::__normal_iterator, __gnu_cxx::__normal_iterator, std::tr1::basic_regex > const&, std::basic_string, std::allocator > const&, std::bitset)'
collect2: error: ld returned 1 exit status