Maison >développement back-end >C++ >Comment le rfind de std::string peut-il être utilisé pour rechercher un préfixe et convertir une sous-chaîne en entier ?
Utilisation des surcharges rfind de std::string pour vérifier le préfixe et convertir la sous-chaîne en Int
Pour déterminer si une chaîne C std::string commence avec une chaîne spécifique et convertir une sous-chaîne en entier, vous pouvez tirer parti du rfind surchargé function.
Vérification du préfixe de chaîne
Utilisez la surcharge rfind qui accepte un paramètre de position de recherche (pos). La définition de ce paramètre sur zéro restreint la recherche au début de la chaîne :
<code class="cpp">std::string s = "tititoto"; if (s.rfind("titi", 0) == 0) { // The string s starts with the "titi" prefix. }</code>
Conversion de la sous-chaîne en Int
Pour extraire une sous-chaîne après un préfixe connu et la convertir en un entier, vous pouvez utiliser une combinaison de rfind et substr :
<code class="cpp">std::string arg = "--foo=98"; size_t pos = arg.rfind("--foo="); if (pos != std::string::npos) { std::string fooValue = arg.substr(pos + len("--foo=")); int value = std::stoi(fooValue); }</code>
Dans cet exemple, si arg est "--foo=98", la valeur variable se verra attribuer la valeur entière 98.
Avantage STL
Cette approche évite le besoin de bibliothèques externes comme Boost. Il utilise les manipulations de chaînes standard fournies par la STL, qui sont simples à mettre en œuvre et efficaces.
Simplification C 20
En C 20 et versions ultérieures, le std :: Les classes string et std::string_view introduisent la méthode startups_with, ce qui rend la vérification d'un préfixe encore plus simple :
<code class="cpp">std::string s = "tititoto"; if (s.starts_with("titi")) { // The string s starts with the "titi" prefix. }</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!