The C + + biblioteca de cadena tiene varias funciones útiles para la manipulación de cadenas, pero no de búsqueda general y reemplazar. Aunque hay una gran cantidad de información sobre los algoritmos optimizados para la aplicación de reemplazo de texto arbitrario , muchos algoritmos involucran estructuras de datos complejas y difíciles de seguir técnicas como la aritmética de punteros . Para la mayoría de los programas , búsqueda y reemplazo no es un cuello de botella , así que tiene más sentido usar un algoritmo simple, fácil de entender . Esto es posible mediante el aprovechamiento de algunas de las funciones de cadena existentes para manejar la manipulación de bajo nivel . Instrucciones
1
Escriba el contorno de su función de sustitución de cadena:
replaceSubstring string ( cadena fuente , combinación de cadena , cadena de sustitución ) {String salida = ""; volverán ; }
2
Añadir un loop que encuentra todas las coincidencias de subcadenas de la cadena. Los lastpos variables será útil cuando usted comienza a añadir el código para construir la nueva cadena:
size_t pos = 0 ; //Empieza a buscar a los primeros lastpos charactersize_t = 0 ; while (( pos = source.find ( ! partido, pos) ) = string :: npos ) //bucle hasta que no se encuentran coincidencias { pos = pos + match.lengh (); //Iniciar la búsqueda para el próximo partido en el final de este matchlastpos = pos ;}
3
Construye la cadena de salida que se encuentran coincidencias :
size_t pos = 0 ; //Empieza a buscar a los primeros lastpos charactersize_t = 0 ; while (( pos = source.find ( partido, pos) ) = string :: npos ) //bucle hasta que no se encuentran coincidencias { salida + = source.substr ( lastpos , pos - lastpos ) ; //¡ Agregue todos los personajes que se han omitido overoutput + = reemplazar , pos = pos + match.lengh (); //Iniciar la búsqueda para el próximo partido en el final de este matchlastpos = pos ;} salida + = source.substr ( lastpos ) //Agregar el resto de la cadena de origen