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 :
#include
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 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 principale teste la fonction hasEnding avec plusieurs chaînes d'entrée et génère les résultats.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3