es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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;
}

“`

Tags:  , ,

Answer

  1. Avatar for 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ón std::regex_replace o en la forma en que se utiliza en el fragmento de código.

Comments are closed.