J'écris un programme pour analyser certaines données enregistrées en tant que fichiers texte. Ce que j'essaie de faire est de trouver l'emplacement de chaque aiguille dans une botte de foin. Je peux déjà lire le fichier et déterminer le nombre d'occurrences, mais je cherche aussi l'index.Trouver toutes les occurrences et les emplacements d'une sous-chaîne
Répondre
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);
}
Modifier J'ai mal lu votre message, vous avez dit sous-chaîne, et je suppose que vous vouliez dire que vous recherchez une chaîne. Cela fonctionnera toujours si vous lisez le fichier dans une chaîne.
= et si le fichier fait 100Go de long? Est-ce que ça fonctionne encore? –
Le fichier n'est pas très long. Cela devrait fonctionner parfaitement :) merci! –
@Steve - S'il est capable de lire le fichier de 100 Go dans une chaîne comme je l'ai dit, alors oui, cela fonctionnera. –
Je sais une réponse a été acceptée, mais cela aussi travailler, et vous évitera d'avoir à charger dans le fichier à une chaîne ..
#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. GREP - trouver toutes les occurrences d'une chaîne
- 2. PHP regex templating - trouver toutes les occurrences de {{var}}
- 3. trouver toutes les occurrences de 'peut être interprété comme temps'
- 4. extrait toutes les occurrences sur la chaîne
- 5. Comment trouver toutes les occurrences de lettres majuscules, d'espaces et de nombres dans une recherche mysql?
- 6. Comment trouver les index de toutes les occurrences d'une chaîne dans une autre en JavaScript?
- 7. Comment trouver toutes les occurrences d'un attribut personnalisé dans les assemblages?
- 8. Sélectionnez toutes les occurrences MovieClips avec le code
- 9. Hériter classe d'exception à enregistrer toutes les occurrences suivantes d'exception
- 10. Détection des occurrences de glyphes dans toutes les polices
- 11. PHP Trouver toutes les combinaisons
- 12. Trouver toutes les majuscules dans les colonnes?
- 13. Trouver des lignes avec les occurrences N d'un caractère
- 14. Trouver les emplacements des dossiers système en Python
- 15. Quels sont exactement les signaux et les emplacements dans Qt?
- 16. C#/WPF: Richtextbox: Trouver toutes les images
- 17. Trouver toutes les fonctionnalités dans Lucene
- 18. PHP: Comment se débarrasser de toutes les occurrences <! [CDATA [et]]> dans une chaîne?
- 19. Je veux rechercher un répertoire et remplacer toutes les occurrences d'un mot dans emacs
- 20. Comment trouver toutes les classes implémentant IDisposable?
- 21. Comment trouver toutes les dépendances d'une application?
- 22. Trouver toutes les références à Voir
- 23. Comment trouver toutes les clés étrangères?
- 24. Comment obtenir les index de toutes les occurrences d'un modèle dans une chaîne
- 25. MySQL: Compter les occurrences de valeurs distinctes
- 26. Glisser-déposer et identifier les emplacements avec Java
- 27. Comment trouver toutes les cases non cochées?
- 28. SQL - Trouver toutes les combinaisons possibles
- 29. Stockez les emplacements de mousedown
- 30. Trouver les index de toutes les correspondances regex en Python?
plus de détails. Un exemple de code serait très utile pour comprendre ce que vous essayez de faire. –
si ce n'est pas du code, alors la sortie désirée pour un petit échantillon d'entrée –