Maison > développement back-end > C++ > le corps du texte

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

DDD
Libérer: 2024-10-29 12:16:02
original
973 Les gens l'ont consulté

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>
Copier après la connexion

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!