كيفية عكس سلسلة في C.

How Reverse String C



في ترميز السلسلة ، يعد انعكاس السلسلة موضوعًا مهمًا. هناك أيضًا عدة طرق لعكس السلسلة ، لكل منها منطق مختلف. ستوضح لك هذه المقالة كيفية عكس سلسلة بشكل صحيح لاستخدام العديد من الأساليب المتميزة والاستدلال مع وبدون الحاجة إلى أي وظائف محددة مسبقًا. عندما يتم تطبيق عكس تقنية السلسلة في سلسلة إدخال فريدة معينة ، فإن النص الذي يقدمه المستهلك بترتيب معين سيتم عكسه تمامًا. في المثال أدناه ، تم استخدام بدائل مختلفة لعكس السلسلة باستخدام C.

عند تنفيذ هذا الدليل ، كنا نعمل على نظام Ubuntu 20.04 Linux الذي تم تكوينه على Virtual Box. أثناء العمل على نظام Linux ، اعتدنا القيام بمعظم عمليات التثبيت والاستعلامات الخاصة بنا على shell الطرفية. ومن ثم ، افتح الغلاف الطرفي باختصار Ctrl + Alt + T أو ابحث عنه عبر شريط بحث التطبيق ضمن منطقة النشاط في سطح مكتب Ubuntu. من الضروري تحديث نظامك أولاً عبر استعلام التحديث المناسب. سيطلب منك كلمة مرور المستخدم الحالية لتشغيل التحديث. ومن ثم ، أضف كلمة مرور واضغط على زر Enter.







sudo apt update



نظرًا لأننا كنا نستخدم لغة البرمجة C لتطوير مفهوم عكس السلاسل في نظام Ubuntu 20.04 ، يجب أن يكون لدى المرء مترجم C مثبتًا على نظام Ubuntu الخاص به. لذلك تأكد من تثبيت برنامج التحويل البرمجي GCC على نظامك عبر الاستعلام أدناه.



sudo apt install gcc

مثال 01: استخدام For Loop

بعد تثبيت وتهيئة برنامج التحويل البرمجي GCC وتحديث الحزمة apt ، يتحول لإنشاء ملف جديد. يجب أن يكون هذا الملف من النوع C ؛ لذلك ، استخدم الأمر touch لإنشاء ملف new.c على النحو التالي. سيتم استخدام هذا الملف في الكود الخاص بنا من الآن فصاعدًا أثناء تنفيذ برامج السلسلة العكسية.





لمسة جديدة.ج

يمكنك الآن فتح هذا الملف للتحرير أو الترميز بواسطة محرر Nano الذي تم تضمينه في نظام Ubuntu 20.04 Linux. لذلك ، جرب التعليمات أدناه في صدفتك للقيام بذلك.



نانو دولار جديد.ج

تم فتح الملف الجديد من النوع C الذي تم إنشاؤه حديثًا في محرر GNU Nano لنظام Ubuntu 20.04. يجب عليك كتابة نص C فيه ، كما هو موضح في صورة لقطة الشاشة أدناه. دعنا نوضح هذا الرمز لفهمك بشكل أفضل. في بداية الكود ، قمنا بتضمين مكتبتين. تم استخدام مكتبة stdio.h لأخذ المدخلات وعرض المخرجات ، وقد تم استخدام سلسلة المكتبة الأخرى. h لاستخدام جميع أنواع السلاسل في التعليمات البرمجية الخاصة بنا. سيتم تنفيذ كل عمل عكس السلسلة بالطريقة الرئيسية () لرمز C. لقد أعلنا عن سلسلة من نوع الحرف str بحجم 50. هذا يعني أنه لا يمكن الاستمتاع بسلسلة بها أكثر من 50 حرفًا في هذا الرمز. بعد ذلك ، أعلنا عن متغيرين من النوع الصحيح. تم استخدام المتغير l لتجميع طول سلسلة str ، والمتغير I سوف يستخدم كمُهيئ في حلقة for. ثم استخدمنا عبارة printf لطباعة نص على سلسلة shell Enter ، لإخبار المستخدم بإضافة قيمة إلى متغير سلسلة. تم استخدام طريقة scanf () لإدخال المستخدم في وقت التشغيل وحفظ هذه القيمة في سلسلة نصية. تم استخدام الدالة strlen () للتحقق من طول السلسلة النصية التي تمت إضافتها من قبل المستخدم في وقت التشغيل وحفظها في متغير l '. ثم قمنا بتهيئة حلقة for لعكس سلسلة السلسلة. يمكنك أن ترى أن المُهيئ I يأخذ القيمة من المتغير l لعكس اتجاه السلسلة. ثم يقوم بطباعة أحرف سلسلة السلسلة الواحدة تلو الأخرى. في الماضي ، تم إنهاء الطريقة الرئيسية. احفظ هذا الملف باستخدام Ctrl + S وقم بإنهاءه عبر Ctrl + X.

حان الوقت الآن لتجميع الشفرة والتحقق من إخراجها. ومن ثم ، فقد تم التجميع بواسطة استعلام دول مجلس التعاون المذكور أدناه باسم الملف new.c.

جديد دول مجلس التعاون الخليجي.ج

مع نجاح عملية التجميع ، فهذا يعني أنه لا يوجد خطأ في التعليمات البرمجية الخاصة بنا. دعنا ننفذ ملفنا عن طريق استعلام a.out في الصدفة على النحو التالي:

$./إلى.خارج

ستطلب عملية التنفيذ من المستخدم إضافة سلسلة. أضفنا أنا الأقصى ياسين وضغطنا على Enter. يمكنك أن ترى أنه يعيد عكس السلسلة في السطر التالي.

مثال 02: استخدام المبادلة

في هذا المثال ، سنستخدم طريقة المبادلة لعكس ترتيب السلسلة. ومن ثم افتح الملف new.c مرة أخرى باستخدام محرر nano كما يلي:

نانو دولار جديد.ج

الآن تم فتح الملف في محرر GNU nano ؛ نحتاج إلى تحديث ملف الشفرة باستخدام البرنامج النصي الموضح أدناه في لقطة الشاشة. لقد قمنا بتضمين ملف رأس الإدخال والإخراج القياسي في الكود الخاص بنا أولاً باستخدام الكلمة الأساسية #include. لقد حددنا طريقة عكسية () وفقًا لاستخدام تقنية المبادلة. لقد قمنا بتهيئة ثلاثة متغيرات من نوع الأعداد الصحيحة الجديدة ، I ، والمبادلة. يتم استخدام أول حلقة for للتحقق مما إذا كانت السلسلة s فارغة أم لا. يتم استخدام حلقة for التالية للتكرار ، وفي جسمها ، قمنا بتبديل القيم باستخدام متغيرات جديدة ومتغيرات مبادلة. من الجدير بالذكر أن عكس سلسلة بطول n لا يستغرق سوى جولة n / 2. بمجرد تبديل السلاسل ، سيتعين عليك التكرار مرة أخرى لإظهار السلسلة المعكوسة ، وهو ما نقوم به داخل تطبيقنا باستخدام حلقة for ثالثة. يجب استدعاء الوظيفة Reverse () من داخل البرنامج الرئيسي. لقد حددت ما يقوم به برنامجك باستخدام printf داخل سياق main (). بعد ذلك ، استخدمت scanf () للحصول على مدخلات المستخدم واستدعاء طريقة Reverse (). الآن احفظ الملف مرة أخرى باستخدام Ctrl + S واترك محرر nano عن طريق اختصار Ctrl + X والعودة إلى الغلاف الطرفي.

قم بتجميع الشفرة أولاً عن طريق استعلام دول مجلس التعاون الخليجي على النحو التالي.

جديد دول مجلس التعاون الخليجي.ج

الآن قم بتنفيذ ملف الكود باستخدام نفس التعليمات ./a.out.

$./إلى.خارج

سيطلب منك إدخال قيمة السلسلة. لقد أضفنا الأقصى وحصلنا على عكسه.

مثال 03: استخدام العودية

في هذا المثال ، سنستخدم العودية لعكس السلسلة التي أضافها المستخدم. ومن ثم فتح الملف مرة أخرى.

نانو دولار جديد.ج

يقوم هذا البرنامج بطباعة إدخال جملة: ثم يتم استخدام طريقة Reverse (). يتم حفظ الحرف الأولي الذي أدخله المستخدم في c من خلال هذه الطريقة. يتم تنفيذ Reverse () مرة أخرى إذا كانت الوسيطة شيئًا مختلفًا عن n (سطر جديد). يستمر هذا الإجراء حتى يضغط المستخدم على مفتاح Enter. عندما يضغط المستخدم على إدخال ، تقوم طريقة Reverse () بطباعة النص بترتيب عكسي. أحفظ وأغلق الملف.

قم بتجميع الكود أولاً ثم قم بتشغيله باستخدام الأوامر السابقة كما يلي:

جديد دول مجلس التعاون الخليجي.ج

$./إلى.خارج

يمكنك أن ترى أنه يأخذ مدخلات من المستخدم ككل جملة سلسلة كاملة ثم يعكس ترتيب تلك الجملة.

استنتاج:

أخيرًا ، قمنا بعمل ثلاثة أمثلة للتوسع في عكس إدخال نوع السلسلة بأساليب مختلفة ، على سبيل المثال ، استخدام حلقة for ، واستخدام العودية ، واستخدام المبادلة.