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

Comment déterminer si une chaîne se termine par une sous-chaîne spécifique en C ?

DDD
DDDoriginal
2024-10-29 12:16:021039parcourir

How to Determine if a String Ends with a Specific Substring in C  ?

Détermination des fins de chaîne en C

Une opération courante dans la manipulation de chaînes consiste à vérifier si une chaîne donnée se termine par une autre. Cette fonctionnalité est cruciale dans diverses applications, notamment le traitement de texte, la correspondance de modèles et l'analyse de fichiers.

En C , il existe plusieurs façons de vérifier si une chaîne se termine par une sous-chaîne spécifique. Une méthode efficace consiste à utiliser la fonction std::string::compare, disponible dans la bibliothèque C standard.

La fonction compare compare deux chaînes et renvoie une valeur entière représentant le résultat. En comparant la dernière partie de la chaîne d'origine avec la sous-chaîne de fin potentielle, nous pouvons déterminer si elles correspondent.

Le code suivant montre comment implémenter cette approche :

<code class="cpp">#include <iostream>

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;
    }
}

int main() {
    std::string test1 = "binary";
    std::string test2 = "unary";
    std::string test3 = "tertiary";
    std::string test4 = "ry";
    std::string ending = "nary";

    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>

Dans ce code , nous définissons d'abord une fonction hasEnding qui prend deux chaînes en entrée. La fonction renvoie un booléen indiquant si la première chaîne se termine par la seconde.

A l'intérieur de la fonction, on vérifie si la longueur de la première chaîne est supérieure ou égale à la longueur de la deuxième chaîne. Sinon, la fonction renvoie false.

Si la vérification de la longueur réussit, nous utilisons compare pour comparer la dernière partie de la première chaîne avec la deuxième chaîne. La fonction de comparaison renvoie 0 si les deux chaînes sont égales, ce que nous vérifions pour déterminer si la première chaîne se termine par la seconde.

La fonction main teste la fonction hasEnding avec plusieurs chaînes d'entrée et affiche les résultats.

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