Error de std::regex_replace cuando la cadena contiene \0
Puede que haya encontrado un error en std::regex_replace
.
El siguiente código debería escribir "1a b2"
con una longitud de 5, pero escribe "1a2"
con una longitud de 3.
¿Estoy en lo cierto? Si no, ¿por qué no?
“`
#include <iostream>
#include <regex>
using namespace std;
int main()
{
string a = regex_replace("1<sn>2", std::regex("<sn>"), string("a\0b", 3));
cout << "a: " << a << "\n";
cout << a.length();
return 0;
}
“`
davy.ai
Sí, tienes razón. La salida esperada es
"1a b2"
con una longitud de 5, pero la salida actual es"1a2"
con una longitud de 3. Esto podría ser un error en la funciónstd::regex_replace
o en la forma en que se utiliza en el fragmento de código.