En C++ j'ai un répertoire avec beaucoup de noms, tels que Sinatra, Frank, et je veux que l'utilisateur puisse entrer n'importe quelle longueur de chaîne pour scanner le dossier pour cela. Une fois que l'utilisateur a entré une chaîne de n'importe quelle longueur désirée, comment puis-je scanner une chaîne entière de "Sinatra, Frank" pour juste "Frank" ou "Sinatra" ou "atra" et voir à quel (s) nom (s) il appartient?Trouver une sous-chaîne dans une chaîne
Répondre
Vous pouvez utiliser strstr()
pour rechercher une sous-chaîne dans une chaîne.
Vous pouvez utiliser la méthode std::string::find
:
string s = "Sinatra, Frank";
string::sizetype index = s.find("Frank");
Cela vous obtient l'indice du match (qui dans ce cas est 9).
Si c'est un std::string
, vous pouvez utiliser la méthode .find()
du « Sinatra, Frank » string
Une question: est votre répertoire un fichier plat avec chaque nom sur une nouvelle ligne (comme dans votre exemple avec " Sinatra, Frank "dans un format comme" Nom, Prénom ", etc.), ou avez-vous une structure de ce répertoire où chaque chaîne de noms est un noeud d'un tableau, une liste chaînée, etc?
Notez que pour strstr():
strstr(const char *s1, const char *s2)
localise la première occurrence de la chaîne s2 dans s1, qui peut être suffisant pour vous.
Pour votre chaîne d'entrée, assurez-vous toujours de vérifier les limites de taille d'une manière ou d'une autre; Si l'utilisateur entre une chaîne via une interface, elle doit être gérée explicitement pour s'assurer qu'elle ne dépasse pas votre espace de stockage ou contient des caractères malveillants ou du code.
Ken's solution produit la position de la sous-chaîne dans la chaîne d'origine (et tant qu'elle n'est pas nulle cela signifie qu'il y a un 'hit') mais ne vous dit pas quelle entrée du répertoire est le hit; Votre code devra suivre quelles entrées/entrées sont des hits afin que vous puissiez retourner un ensemble significatif de résultats.
- 1. Comment trouver une chaîne dans une chaîne
- 2. Trouver une chaîne dans une chaîne
- 3. Trouver une chaîne dans une chaîne
- 4. Trouver une virgule dans une chaîne?
- 5. Trouver une insertion dans une chaîne
- 6. Trouver une valeur entière dans une chaîne
- 7. Trouver une chaîne dans une autre chaîne, recherche vers
- 8. Comment trouver une chaîne dans une chaîne et la remplacer?
- 9. Powershell utilisant Regex trouver une chaîne dans une chaîne
- 10. Trouver une chaîne/tableau dans une partie d'une chaîne
- 11. Comment trouver une chaîne avant une autre chaîne dans php
- 12. vb.net: trouver une position d'une chaîne dans une chaîne?
- 13. comment trouver une chaîne dans une chaîne en utilisant php
- 14. isInfixOf et trouver une chaîne dans une chaîne
- 15. Comment trouver une chaîne dans une chaîne avec regex?
- 16. Comment trouver une chaîne dans une chaîne avec regex?
- 17. Cordes en C, comment obtenir sousChaîne
- 18. Trouver une chaîne dans une table et retourne une valeur
- 19. Trouver une chaîne dans une colonne de tableau dans PostgreSQL
- 20. Comment trouver une chaîne dans une colonne dans un DataTable
- 21. Trouver modèle par une chaîne
- 22. Trouver l'index d'un caractère dans une chaîne?
- 23. Trouver un mot exact dans une chaîne
- 24. trouver la dernière position dans une chaîne
- 25. Trouver backslash (\) dans une chaîne --Python
- 26. trouver des modèles récurrents dans une chaîne
- 27. trouver une chaîne dans un fichier
- 28. Trouver des commentaires dans une chaîne
- 29. Trouver Ampersend et dans une chaîne (bash)
- 30. PHP trouver une chaîne dans le tableau?