C++, fonction de recherche dans un string
Fermé
-
-
16 mars 2008 à 17:40
mamiemando Messages postés 33663 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 13 mai 2025 - 17 mars 2008 à 00:39
mamiemando Messages postés 33663 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 13 mai 2025 - 17 mars 2008 à 00:39
Bonjour,
Je vaudrais savoir s'il existe, en C++, une fonction toute faite qui recherche des caractères dans un string et qui renvoie leur position.
Merci...
Je vaudrais savoir s'il existe, en C++, une fonction toute faite qui recherche des caractères dans un string et qui renvoie leur position.
Merci...
A voir également:
- C++, fonction de recherche dans un string
- Fonction si et - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Recherche photo - Guide
- Cannot access offset of type string on string - Forum PHP
- Je recherche une chanson - Guide
2 réponses
mamiemando
Messages postés
33663
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
13 mai 2025
7 850
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.