632 votes

Vérifiez si une chaîne contient une chaîne en C ++

J'ai une variable de type string. Je veux vérifier s'il contient une certaine chaîne. Comment ferais-je cela?

Y at-il une fonction qui renvoie true si la chaîne est trouvée, et false si ce n'est pas le cas?

146voto

codaddict Points 154968

Vous pouvez essayer d'utiliser la fonction find :

 string str ("There are two needles in this haystack.");
string str2 ("needle");

if (str.find(str2) != string::npos) {
//.. found.
} 
 

38voto

Geng Jiawen Points 85

En fait, vous pouvez essayer d'utiliser la bibliothèque boost, je pense que std :: string ne fournit pas assez de méthode pour faire toutes les opérations sur les chaînes. Dans boost, vous pouvez juste utiliser le boost::algorithm::contains :

 #include "string"

#include "boost/algorithm/string.hpp"

using namespace std;
using namespace boost;
int main(){
    string s("gengjiawen");
    string t("geng");
    bool b = contains(s, t);
    cout << b << endl;
    return 0;
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X