je un tableau de chaînes numériques par exemple 156.983.425 Je veux chercher si elle a « 34 » ou non si elle a « 34 » at-il 6 avant '34' ou pas?recherche sous-chaîne dans la chaîne et vérifier une autre chaîne avant que
Merci pour votre aide
je un tableau de chaînes numériques par exemple 156.983.425 Je veux chercher si elle a « 34 » ou non si elle a « 34 » at-il 6 avant '34' ou pas?recherche sous-chaîne dans la chaîne et vérifier une autre chaîne avant que
Merci pour votre aide
Ici ya go, utilisez std::string::find
:
// Notice the double quotes
std::string::size_type position = my_string.find("34");
bool found =
((position != std::string::npos) && (position > 0) && (my_string[position - 1] == '6'));
La méthode find
renvoie la position de sous-chaîne ou std::string::npos
si elle ne se trouve pas.
La position doit être supérieure à 0, en raison de l'exigence «avant».
Si les deux conditions sont satisfaites, l'emplacement de caractère avant le "34" est vérifié pour '6' et affecté à une variable booléenne.
Que se passe-t-il si '" 34 "' est trouvé à la position '0'? – user0042
La variable 'found' est définie sur' false', indiquant que l'exigence n'est pas satisfaite. Comme l'opérateur '&&' est en court-circuit, l'évaluation s'arrête lorsqu'un terme est évalué à false. Ainsi, le dernier terme n'est pas évalué avec 'position' est zéro. –
Ah, désolé. J'ai négligé la condition '(position> 0)'. – user0042
Je vote pour clore cette question hors-sujet parce que SO n'est pas un service d'écriture de code. S'il vous plaît montrer vos efforts. – EdChum
On dirait que vous voulez utiliser 'std :: string :: find' et' if'. Codage heureux! – user4581301