Maison > développement back-end > C++ > Comment vérifier si une chaîne C se termine par une chaîne spécifique ?

Comment vérifier si une chaîne C se termine par une chaîne spécifique ?

Susan Sarandon
Libérer: 2024-10-27 18:53:30
original
662 Les gens l'ont consulté

How to Check if a C   String Ends with a Specific String?

Trouver les fins de chaîne par C

Déterminer si une chaîne se termine par une autre séquence de caractères est une tâche courante en programmation. En C , cette fonctionnalité peut être facilement obtenue en utilisant la méthode std::string::compare.

Solution :

Pour vérifier si la chaîne de fin existe à la fin de la chaîne complète, nous devons comparer les n derniers caractères de fullString avec la chaîne de fin. Voici une fonction qui effectue cette tâche :

<code class="cpp">bool hasEnding(const std::string& fullString, const std::string& ending) {
    if (fullString.length() >= ending.length()) {
        return (0 == fullString.compare(fullString.length() - ending.length(), ending.length(), ending));
    } else {
        return false;
    }
}</code>
Copier après la connexion

Explication :

  • Vérifiez si la fullString est suffisamment longue pour contenir la fin.
  • Si tel est le cas, comparez les n derniers caractères de fullString (où n est la longueur de la fin) avec la chaîne de fin à l'aide de compare.
  • Si la comparaison renvoie 0, les chaînes sont identiques et la fonction renvoie vrai. Sinon, il renvoie false.

Exemple d'utilisation :

Dans la fonction principale fournie, nous testons la fonction hasEnding avec différentes chaînes et une chaîne de fin :

<code class="cpp">int main() {
    // Test strings
    std::string test1 = "binary";
    std::string test2 = "unary";
    std::string test3 = "tertiary";
    std::string test4 = "ry";

    // Ending string
    std::string ending = "nary";

    // Print results
    std::cout << hasEnding(test1, ending) << std::endl;
    std::cout << hasEnding(test2, ending) << std::endl;
    std::cout << hasEnding(test3, ending) << std::endl;
    std::cout << hasEnding(test4, ending) << std::endl;

    return 0;
}</code>
Copier après la connexion

Sortie :

true
false
false
true
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal