دالة السلسلة C++: strcpy()، strcat()، strlen()، strcmp() مثال

ما هي السلسلة؟

السلسلة عبارة عن سلسلة من الأحرف. سلسلة C++ هي كائن من فئة std::string. الأحرف عبارة عن تسلسلات مخزنة من البايتات مع السماح بالوصول إلى بايت حرف واحد.

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

إعلان السلاسل

يدعم C++ نوعين من إعلانات السلسلة:

  • سلسلة أحرف على طراز C
  • نوع فئة السلسلة

سلسلة الأحرف على النمط C

تم تقديم هذا النوع من إعلان السلسلة في لغة البرمجة سي. يستمر C++ في دعمه. إنها ببساطة مجموعة من الأحرف أحادية البعد منتهية بحرف فارغ (\0). تحتوي السلسلة المنتهية بقيمة خالية على أحرف تشكل السلسلة ثم تليها قيمة خالية.

خذ بعين الاعتبار إعلان السلسلة الوارد أدناه:

char name[5] = {'J', 'o', 'h', 'n', '\0'};

ينشئ الإعلان أعلاه سلسلة تشكل كلمة جون. تحتوي الكلمة على 4 أحرف، لكن حجم السلسلة هو 5. وتسمح المساحة الإضافية بالاحتفاظ بالحرف الفارغ.

باستخدام قاعدة تهيئة المصفوفة، يمكننا كتابة العبارة أعلاه على النحو التالي:

char name[] = "John";

لاحظ أنه ليس عليك وضع الحرف الفارغ في نهاية ثابت السلسلة. سيقوم مترجم C++ تلقائيًا بوضع "\0" في نهاية السلسلة عند تهيئة المصفوفة.

الأمراض المنقولة جنسيا :: سلسلة

توفر مكتبة C++ القياسية فئة السلسلة التي تدعم عمليات السلسلة المختلفة. هو مكتوب كـ std::string.

لاستخدام هذه الفئة، يجب علينا أولاً تضمينها في مساحة العمل الخاصة بنا باستخدام المعالج الأولي #include كما هو موضح أدناه:

#include<string>

بعد ذلك، يمكننا الإعلان عن السلسلة باستخدام الكلمة الأساسية. على سبيل المثال:

string name = "John";

سيقوم البيان أعلاه بإنشاء سلسلة تسمى name للاحتفاظ بالقيمة John.

الوصول إلى قيم السلسلة

In C + +يمكننا الوصول إلى قيم السلسلة باستخدام اسم السلسلة. على سبيل المثال:

#include <iostream>
using namespace std;
int main() {
	char name[5] = { 'J', 'o', 'h', 'n', '\0' };
	cout << "String value is: ";
	cout << name << endl;
	return 0;
}

الإخراج:

الوصول إلى قيم السلسلة

فيما يلي لقطة شاشة للكود:

الوصول إلى قيم السلسلة

شرح الكود:

  1. بما في ذلك ملف رأس iostream في التعليمات البرمجية الخاصة بنا. سيسمح لنا بالقراءة من وحدة التحكم والكتابة إليها.
  2. تضمين مساحة الاسم std لاستخدام فئاتها ووظائفها دون استدعائها.
  3. استدعاء الوظيفة الرئيسية () التي يجب إضافة منطق البرنامج بداخلها. تشير العلامة { إلى بداية نص الدالة main().
  4. الإعلان عن سلسلة من الأحرف وإعطائها اسم الاسم. ستقوم السلسلة بتخزين القيمة John. ستقوم المساحة الإضافية بتخزين الحرف الفارغ.
  5. طباعة بعض النص على وحدة التحكم.
  6. طباعة قيمة السلسلة المسماة name على وحدة التحكم.
  7. يجب أن تقوم الدالة main() بإرجاع قيمة إذا كان البرنامج يعمل بشكل جيد.
  8. نهاية نص الدالة main().

فيما يلي مثال آخر باستخدام فئة السلسلة القياسية C++:

#include <iostream>
#include <string>
using namespace std;
int main() {

	string name = "Guru99";
	
	cout << "The name is : " << name << endl;

	return 0;
}

الإخراج:

الوصول إلى قيم السلسلة

فيما يلي لقطة شاشة للكود:

الوصول إلى قيم السلسلة

شرح الكود:

  1. بما في ذلك ملف رأس iostream في التعليمات البرمجية الخاصة بنا. سيسمح لنا بالقراءة من وحدة التحكم والكتابة إليها.
  2. بما في ذلك فئة السلسلة القياسية في التعليمات البرمجية لدينا.
  3. تضمين مساحة الاسم std لاستخدام فئاتها ووظائفها دون استدعائها.
  4. استدعاء الوظيفة الرئيسية () التي يجب إضافة منطق البرنامج بداخلها. تشير العلامة { إلى بداية نص الدالة main().
  5. الإعلان عن سلسلة وإعطائها اسم الاسم. ستقوم السلسلة بتخزين القيمة Guru99.
  6. طباعة قيمة اسم السلسلة بجانب بعض النص على وحدة التحكم.
  7. يجب أن تقوم الدالة main() بإرجاع قيمة إذا كان البرنامج يعمل بشكل جيد.
  8. نهاية نص الدالة main().

وظائف السلسلة في C++

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

ستركبي ()

هذه هي وظيفة نسخ السلسلة. يقوم بنسخ سلسلة واحدة إلى سلسلة أخرى.

بناء الجملة:

strcpy(string1, string2);

المعلمتان للدالة، string1 وstring2، هما سلاسل. ستقوم الدالة بنسخ السلسلة string1 إلى السلسلة 1.

سترات ()

هذه هي وظيفة سلسلة متسلسلة. فهو يسلسل السلاسل.

بناء الجملة:

strcat(string1, string2);

المعلمتان للدالة، string1 وstring2 هما السلاسل المراد ربطها. ستقوم الوظيفة المذكورة أعلاه بربط السلسلة string2 إلى نهاية السلسلة string1.

سترلين ()

هذه هي وظيفة طول السلسلة. تقوم بإرجاع طول السلسلة التي تم تمريرها إليها كوسيطة.

بناء الجملة:

strnlen(string1)

المعلمة string1 هي اسم السلسلة التي سيتم تحديد طولها. ستعيد الوظيفة المذكورة أعلاه طول السلسلة string1.

strcmp ()

هذه هي وظيفة مقارنة السلسلة. يتم استخدامه لمقارنة السلسلة.

بناء الجملة:

strcmp(string1, string2);

ستُرجع الدالة أعلاه 0 إذا كانت السلاسل string1 وstring2 متشابهة، وأقل من 0 إذا كانت السلسلة 1 سلسلة2.

على سبيل المثال:

التاليwing يوضح المثال كيفية استخدام وظائف السلسلة المذكورة أعلاه:

#include <iostream>
#include <cstring>
using namespace std;
int main() {

	char name1[10] = "Guru99";
	char name2[10] = "John";
	char name3[10];

	int  len;
	strcpy(name3, name1);
	cout << "strcpy( name3, name1) : " << name3 << endl;

	strcat(name1, name2);
	cout << "strcat( name1, name2): " << name1 << endl;

	len = strlen(name1);
	cout << "strlen(name1) : " << len << endl;
	return 0;
}

الإخراج:

وظائف السلسلة في C++

فيما يلي لقطة شاشة للكود:

وظائف السلسلة في C++

شرح الكود:

  1. بما في ذلك ملف رأس iostream في التعليمات البرمجية الخاصة بنا. سيسمح لنا بالقراءة من وحدة التحكم والكتابة إليها.
  2. بما في ذلك فئة CString القياسية في التعليمات البرمجية الخاصة بنا.
  3. تضمين مساحة الاسم std لاستخدام فئاتها ووظائفها دون استدعائها.
  4. استدعاء الوظيفة الرئيسية () التي يجب إضافة منطق البرنامج بداخلها. تشير العلامة { إلى بداية نص الدالة main().
  5. الإعلان عن سلسلة مكونة من 10 أحرف وإعطائها الاسم name1. ستقوم السلسلة بتخزين القيمة Guru99.
  6. الإعلان عن سلسلة مكونة من 10 أحرف وإعطائها الاسم name2. ستقوم السلسلة بتخزين القيمة John.
  7. الإعلان عن سلسلة مكونة من 10 أحرف وإعطائها الاسم name3.
  8. اعلان ا متغير صحيح اسمه لين.
  9. نسخ اسم السلسلة 1 إلى اسم السلسلة 3.
  10. طباعة قيمة السلسلة name1 بجانب بعض النصوص الموجودة على وحدة التحكم. يجب أن تطبع Guru99.
  11. تسلسل السلاسل name2 إلى نهاية السلسلة name1. أصبحت قيمة name1 الآن Guru99John.
  12. طباعة قيمة السلسلة name1 بجانب بعض النصوص الموجودة على وحدة التحكم. يجب أن تطبع Guru99John
  13. تحديد طول السلسلة المسماة name1 وتعيين قيمة الطول للمتغير len.
  14. طباعة قيمة متغير len بجانب بعض النصوص الأخرى على وحدة التحكم.
  15. يجب أن تقوم الدالة main() بإرجاع قيمة إذا كان البرنامج يعمل بشكل جيد.
  16. نهاية نص الدالة main().

نبذة عامة

  • السلسلة عبارة عن سلسلة من الأحرف.
  • تنتمي السلاسل إلى فئة السلسلة القياسية في C++.
  • يمكننا الإعلان عن السلاسل باستخدام سلسلة الأحرف ذات النمط C أو فئة السلسلة القياسية.
  • تقوم الدالة strcpy() بنسخ سلسلة إلى أخرى.
  • تقوم الدالة strcat() بربط وظيفتين.
  • ترجع الدالة strlen() طول الدالة.
  • الدالة strcmp()ares سلسلتين.