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
Susan Sarandonoriginal
2024-10-27 18:53:30663parcourir

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>

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>

Sortie :

true
false
false
true

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!

Déclaration:
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