Maison > Article > développement back-end > Comment puis-je vérifier les préfixes et extraire les sous-chaînes numériques en C ?
Vérification du préfixe et extraction d'une sous-chaîne numérique en C
En Python, vérifier si une chaîne commence par un préfixe spécifique et convertir une sous-chaîne en un entier est une tâche simple. Cependant, en C , il peut ne pas être immédiatement évident comment obtenir une fonctionnalité similaire.
Pour déterminer si une chaîne commence par une certaine sous-chaîne, nous pouvons utiliser la fonction rfind avec le paramètre pos défini sur zéro. Cela garantit que la recherche est limitée au début de la chaîne. Par exemple :
<code class="cpp">std::string str = "tititoto"; if (str.rfind("titi", 0) == 0) { // The string starts with "titi" }</code>
Dans l'exemple ci-dessus, pos est défini sur zéro, ce qui limite la recherche au préfixe. Par conséquent, rfind renvoie 0 si la chaîne commence par la sous-chaîne spécifiée. Sinon, il renvoie std::string::npos, indiquant un échec.
Avec C 20 et versions ultérieures, le processus devient plus simple grâce à l'introduction de start_with dans std::string et std::string_view.
<code class="cpp">std::string str = "tititoto"; if (str.starts_with("titi")) { // The string starts with "titi" }</code>
Pour extraire une sous-chaîne numérique d'une chaîne, nous pouvons utiliser std::stoi. Par exemple, si nous avons une chaîne telle que "--foo=98", nous pouvons extraire la valeur numérique comme suit :
<code class="cpp">std::string arg = "--foo=98"; std::size_t pos = arg.find("--foo="); if (pos != std::string::npos) { std::string foo = arg.substr(pos + sizeof("--foo=") - 1); int foo_value = std::stoi(foo); }</code>
Dans ce cas, nous utilisons find pour localiser la position du " --foo=" préfixe. Si nous la trouvons, nous extrayons la sous-chaîne à l'aide de substr et la convertissons en entier à l'aide de std::stoi.
Ces techniques fournissent des solutions efficaces et concises pour travailler avec des chaînes en C .
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!