C++, fonction de recherche dans un string
Fermé
-
-
16 mars 2008 à 17:40
mamiemando Messages postés 33459 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 janvier 2025 - 17 mars 2008 à 00:39
mamiemando Messages postés 33459 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 janvier 2025 - 17 mars 2008 à 00:39
A voir également:
- C++, fonction de recherche dans un string
- Fonction si et - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Fonction moyenne excel - Guide
- Recherche adresse - Guide
- Recherche image - Guide
2 réponses
mamiemando
Messages postés
33459
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
8 janvier 2025
7 813
17 mars 2008 à 00:39
17 mars 2008 à 00:39
Si ça existe et c'est tout simplement la méthode find :
https://community.hpe.com/t5/custom/page/page-id/HPPSocialUserSignonPage?redirectreason=permissiondenied&referer=https%3A%2F%2Fcommunity.hpe.com%2Ft5%2FServers-Systems-The-Right%2FSGI-com-Tech-Archive-Resources-now-retired%2Fba-p%2F6992583
Si tu cherches toutes les occurrences il suffit d'écrire une boucle et d'indiquer à find d'effectuer la recherche après la dernière occurrence repérée (paramètre pos).
donnera :
Evidemment la chaîne que tu recherches peut être de longueur 1... comprendre tu peux rechercher de la même façon un caractère et là ça ne vaut même pas le coup de faire un find ;-)
Bonne chance
https://community.hpe.com/t5/custom/page/page-id/HPPSocialUserSignonPage?redirectreason=permissiondenied&referer=https%3A%2F%2Fcommunity.hpe.com%2Ft5%2FServers-Systems-The-Right%2FSGI-com-Tech-Archive-Resources-now-retired%2Fba-p%2F6992583
Si tu cherches toutes les occurrences il suffit d'écrire une boucle et d'indiquer à find d'effectuer la recherche après la dernière occurrence repérée (paramètre pos).
#include <iostream> #include <string> int main(){ const std::string str = "abtrtzfvzabokkôpkabcsqcab", sub_str = "ab"; for(std::size_t pos = 0;pos != std::string::npos && pos < str.size();++pos){ std::size_t idx = str.find(sub_str,pos); if(pos != std::string::npos){ std::cout << sub_str << " trouvé dans " << str << " à la position " << idx << std::endl; } pos = idx + 1; } return 0; }
donnera :
ab trouvé dans abtrtzfvzabokkôpkabcsqcab à la position 0 ab trouvé dans abtrtzfvzabokkôpkabcsqcab à la position 9 ab trouvé dans abtrtzfvzabokkôpkabcsqcab à la position 18 ab trouvé dans abtrtzfvzabokkôpkabcsqcab à la position 24
Evidemment la chaîne que tu recherches peut être de longueur 1... comprendre tu peux rechercher de la même façon un caractère et là ça ne vaut même pas le coup de faire un find ;-)
Bonne chance
Bonjour,
Je crois que ça n'existe pas mais on peut la programmer
J'avais déjà répondu à ce genre de question, regardes sur ce post si tu peux en tirer quelque chose.
Il s'agit de la fonction instr() tirée du VB qui renvoie la position de première occurence d'une chaine dans une autre chaine.
http://www.commentcamarche.net/forum/affich 5353155 instr en c ne fonctionne pas#0
Salut.
Je crois que ça n'existe pas mais on peut la programmer
J'avais déjà répondu à ce genre de question, regardes sur ce post si tu peux en tirer quelque chose.
Il s'agit de la fonction instr() tirée du VB qui renvoie la position de première occurence d'une chaine dans une autre chaine.
http://www.commentcamarche.net/forum/affich 5353155 instr en c ne fonctionne pas#0
Salut.