تحديد نهايات السلسلة في لغة C
إحدى العمليات الشائعة في معالجة السلسلة هي التحقق مما إذا كانت سلسلة معينة تنتهي بسلسلة أخرى. تعتبر هذه الوظيفة حاسمة في التطبيقات المختلفة، بما في ذلك معالجة النصوص، ومطابقة الأنماط، وتحليل الملفات.
في لغة C، هناك طرق متعددة للتأكد مما إذا كانت السلسلة تنتهي بسلسلة فرعية معينة. تتضمن إحدى الطرق الفعالة استخدام الدالة std::string::compare المتوفرة في مكتبة C القياسية.
تقارن دالة المقارنة سلسلتين وترجع قيمة عددية تمثل النتيجة. من خلال مقارنة الجزء الأخير من السلسلة الأصلية مع السلسلة الفرعية النهائية المحتملة، يمكننا تحديد ما إذا كانت متطابقة.
يوضح التعليمة البرمجية التالية كيفية تنفيذ هذا النهج:
#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 في هذا الكود، نحدد أولاً دالة hasEnding التي تأخذ سلسلتين كمدخلات. تقوم الدالة بإرجاع قيمة منطقية تشير إلى ما إذا كانت السلسلة الأولى تنتهي بالسلسلة الثانية.
داخل الدالة، نتحقق مما إذا كان طول السلسلة الأولى أكبر من أو يساوي طول السلسلة الثانية. إذا لم يكن الأمر كذلك، فإن الدالة ترجع خطأ.
إذا نجح التحقق من الطول، نستخدم مقارنة لمقارنة الجزء الأخير من السلسلة الأولى مع السلسلة الثانية. ترجع دالة المقارنة 0 إذا كانت السلسلتان متساويتين، وهو ما نتحقق منه لتحديد ما إذا كانت السلسلة الأولى تنتهي بالثانية.
تختبر الوظيفة الرئيسية دالة hasEnding مع عدة سلاسل إدخال وتخرج النتائج.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3