Estoy escribiendo un programa para analizar algunos datos guardados como archivos de texto. Lo que trato de hacer es encontrar la ubicación de cada aguja en un pajar. Ya puedo leer el archivo y determinar el número de apariciones, pero también estoy buscando el índice.Buscar todas las ocurrencias y ubicaciones de una subcadena
Respuesta
string str,sub; // str is string to search, sub is the substring to search for
vector<size_t> positions; // holds all the positions that sub occurs within str
size_t pos = str.find(sub, 0);
while(pos != string::npos)
{
positions.push_back(pos);
pos = str.find(sub,pos+1);
}
Editar leí mal el mensaje, dijo subcadena, y supuse que significaba que estaban buscando una cadena. Esto seguirá funcionando si lees el archivo en una cadena.
= ¿qué ocurre si el archivo tiene 100 GB de longitud? ¿Eso todavía funciona? –
El archivo no es muy largo. Esto debería funcionar perfecto :) ¡Gracias! –
@Steve - Si puede leer el archivo de 100GB en una cadena como dije, entonces sí, funcionará. –
sé la respuesta ha sido aceptada, pero esto también va a funcionar, y se ahorrará tener que cargar en el archivo de una cadena ..
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int main(void)
{
const char foo[] = "foo";
const size_t s_len = sizeof(foo) - 1; // ignore \0
char block[s_len] = {0};
ifstream f_in(<some file>);
vector<size_t> f_pos;
while(f_in.good())
{
fill(block, block + s_len, 0); // pedantic I guess..
size_t cpos = f_in.tellg();
// Get block by block..
f_in.read(block, s_len);
if (equal(block, block + s_len, foo))
{
f_pos.push_back(cpos);
}
else
{
f_in.seekg(cpos + 1); // rewind
}
}
}
- 1. Buscar todas las ubicaciones de subcadena en NSString (no solo primero)
- 2. Eliminar todas las ocurrencias, excepto la última?
- 3. reemplazar todas las ocurrencias de una cadena
- 4. sed beginner: cambiar todas las ocurrencias en una carpeta
- 5. reemplazar todas las ocurrencias dentro patrón
- 6. .replace JavaScript no reemplaza todas las ocurrencias
- 7. Reemplazar todas las ocurrencias de una Cadena usando StringBuilder?
- 8. re.sub Python con una bandera no reemplaza todas las ocurrencias
- 9. Las ocurrencias de la marca Eclipse no marcan todas las ocurrencias
- 10. Reemplazar todas cadena de ocurrencias
- 11. Buscar subcadena en una lista de cadenas
- 12. Eliminar todas las ocurrencias de carbón de cadena
- 13. encuentre todas las ocurrencias de comparación con == en visual studio
- 14. Buscar subcadena en una cadena usando C#
- 15. ¿Cómo buscar una subcadena en SQLite?
- 16. Buscar todas las instancias de una cadena dentro de una cadena
- 17. regex para buscar la subcadena
- 18. ¿Cómo funciona "Buscar ubicaciones más cercanas"?
- 19. ¿Cómo hacer coincidir todas las ubicaciones en nginx, para auth?
- 20. Buscar todas las subcadenas (en inglés) de una cadena determinada
- 21. Buscar subcadena en cadena pero solo si las palabras completas?
- 22. Buscar todas las columnas de una tabla para un valor?
- 23. ¿Cómo busco y reemplazo todas las ocurrencias de una cadena en un documento de ms word con python?
- 24. Buscar todas las apariciones de una función en Eclipse
- 25. Buscar todas las variables no utilizadas
- 26. En C++, ¿cuál es la manera más rápida de reemplazar todas las ocurrencias de una subcadena dentro de una cadena con otra cadena?
- 27. Cómo buscar ocurrencias de más de un espacio entre las palabras de una línea
- 28. Buscar todas las referencias para ver
- 29. ¿Cómo buscar y reemplazar todas las instancias de una cadena dentro de una base de datos?
- 30. Buscar todas las tablas usando MySQL Workbench
Más detalles por favor. Una muestra de código sería muy útil para comprender lo que estás tratando de hacer. –
si no es el código, entonces la salida deseada para una entrada de muestra pequeña –