دوال الكلاس string في السي بلاس بلاس C++

دوال الكلاس string في السي بلاس بلاس

الجدول التالي يحتوي على دوال الكلاس string في السي بلاس بلاس الأكثر استخداماً .

إسم الدالة مع تعريفها
int length() ترجع رقم يمثل عدد أحرف النص الذي قام باستدعائها.
للدقة, فإن الرقم الذي ترجعه يمثل من كم Byte يتألف النص.
الدالة length ()
int size() ترجع رقم يمثل عدد أحرف النص الذي قام باستدعائها تماماً مثل الدالة length().
الدالة size ()
string substr(int pos=0, int len = npos) ترجع نص عبارة عن جزء من النص (Substring) الذي قام باستدعائها.
مكان الباراميتر pos نمرر index الحرف الذي نريد البدء بنسخ النص من عنده.
مكان الباراميتر len يمكنك تمرير رقم يمثل كم حرف تريد أن تنسخ من عند index الباراميتر pos إن لم ترد نسخ كل النص الموجود.
الدالة substr ()
int find(string str) تبحث في النص الذي قام بإستدعائها عن أول index يوجد إبتداءاَ من عنده نفس النص الذي نمرره لها مكان الباراميتر str و ترجعه.
الدالة find ()
int rfind(string str) تبحث في النص الذي قام بإستدعائها عن آخر index يوجد إبتداءاَ من عنده نفس النص الذي نمرره لها مكان الباراميتر str و ترجعه.
الدالة rfind ()
string replace(int pos, int len, string replacement) تستخدم لتعديل جزء محدد من النص الذي قام باستدعائها.
مكان الباراميتر pos نمرر index الحرف الذي نريد البدء بتغيير النص من عنده.
مكان الباراميتر len نمرر رقم يمثل كم حرف تريد أن تبدل إعتباراً من عند index الباراميتر pos.
مكان الباراميتر replacement نمرر النص الذي سيتم إضافته مكان الجزئية التي سيتم حذفها.
الدالة replace ()
void swap(string str) تبدل محتوى النص الذي قام بإستدعائها بمحتوى النص الذي نمرره مكان الباراميتر str.
كما أنها تبدل محتوى المتغير الذي نمرره مكان الباراميتر str بمحتوى النص الذي قام باستدعائها.
الدالة swap ()
string append (const string str) تضيف قيمة النص الذي نمرره مكان الباراميتر str في آخر النص الذي قام باستدعائها و ترجع النص الناتج عند دمجهمها معاً.
الدالة append ()
bool empty() ترجع true إذا كان النص الذي قام باستدعائها غير فارغ (أي يوجد فيه حرف على الأقل).
و ترجع false إن لم يكن كذلك.
الدالة empty ()
void clear() تمسح كل الأحرف الموجودة في النص الذي قام باستدعائها.
الدالة clear ()
int compare (const string str) تقارن حجم النص الذي قام باستدعائها مع حجم النص الذي نمرره لها مكان الباراميتر str.
ترجع 0 في حال كان حجمهم متساوي.
ترجع 1 في حال كان عدد أحرف النص الذي قام باستدعائها أكبر.
ترجع -1 في حال كان عدد أحرف النص الذي قام باستدعائها أصغر.
الدالة compare ()
string insert (int pos, const string str) تضيف قيمة النص الذي نمرره مكان الباراميتر str في النص الذي قام باستدعائها عند Index الخانة التي نحددها مكان الباراميتر pos و ترجع النص الناتج عند دمجهمها معاً.
الدالة insert ()

الدالة () length في السي بلاس بلاس

تعريفها

ترجع الدالة () Lehgh رقم يمثل عدد أحرف النص الذي قام باستدعائها.
للدقة, فإن الرقم الذي ترجعه يمثل من كم Byte يتألف النص.

Length () function Define it Returns a number that represents the number of characters in the text that called it. For accuracy, the number you return represents how much byte the text consists of.

بنا الدالة () Lehgh

                  size_t length() const
  
                  size_t length() const noexcept
  


باراميترات الدالة () Lehgh

لا تقبل أي باراميتر .



قيمة  إرجاع الدالة () Lehgh

ترجع رقم يمثل من كم Byte يتألف النص الذي قام باستدعائها.



المثال الأول على أستخدام الدالة () Lehgh

Main.cpp
                    #include <iostream>

	  using namespace std;

	  int main()
	  {
	  // str هنا قمنا بتعريف متغير نصي إسمه
	  string str = "Welcome to alawiri.com";
// str يتألف نص المتغير Byte هنا قمنا بطباعة من كم // 1Byte الجواب سيكون 22 لأن كل حرف إنجليزي يتم تخزينه في cout << "Length of str is " << str.length() << " bytes"; return 0; }

سنحصل على النتيجة التالية عند التشغيل.

                    Length of str is 22 bytes
	


المثال الثاني في الدالة () Lehgh

Main.cpp
                    #include <iostream>

	  using namespace std;

	  int main()
	  {
	  // str هنا قمنا بتعريف متغير نصي إسمه
	  string str = "صدام";

	  // str يتألف نص المتغير Byte هنا قمنا بطباعة من كم
	  // 2Byte الجواب سيكون 8 لأن كل حرف عربي يتم تخزينه في
	  cout << "Length of str is " << str.length() << " bytes";

	  return 0;
	  }

	

سنحصل على النتيجة التالية عند التشغيل.

                    Length of str is 8 bytes
	
___________

الدالة size() في السي بلاس بلاس

شرح  الدالة size

ترجع الدالة size  رقم يمثل عدد أحرف النص الذي قام باستدعائها.
للدقة, فإن الرقم الذي ترجعه يمثل من كم Byte يتألف النص.

Size () function Define it Returns a number that represents the number of characters in the text that called it. For accuracy, the number you return represents how much byte the text consists of.

بنية الدالة () size 

                  size_t size() const
  
                  size_t size() const noexcept
  


باراميترات الدالة () size 

لا تقبل أي باراميتر.



قيمة إرجاع الدالة () size 

ترجع رقم يمثل من كم Byte يتألف النص الذي قام باستدعائها.



المثل الأول على  الدالة () size 

Main.cpp
                    #include <iostream>

	  using namespace std;

	  int main()
	  {
	  // str هنا قمنا بتعريف متغير نصي إسمه
	  string str = "Welcome to alawiri.com";

	  // str يتألف نص المتغير Byte هنا قمنا بطباعة من كم
	  // 1Byte الجواب سيكون 22 لأن كل حرف إنجليزي يتم تخزينه في
	  cout << "Size of str is " << str.size();

	  return 0;
	  }

	

سنحصل على النتيجة التالية عند التشغيل.

                    Size of str is 22
	


المثال الثاني في الدالة () size 

Main.cpp
                    #include <iostream>

	  using namespace std;

	  int main()
	  {
	  // str هنا قمنا بتعريف متغير نصي إسمه
	  string str = "صدام";

	  // str يتألف نص المتغير Byte هنا قمنا بطباعة من كم
	  // 2Byte الجواب سيكون 8 لأن كل حرف عربي يتم تخزينه في
	  cout << "Size of str is " << str.size();

	  return 0;
	  }

	

سنحصل على النتيجة التالية عند التشغيل.

                    Size of str is 8
	
________

الدالة substr() في السي بلاس بلاس

تعريفها

ترجع  الدالة () substring  نص عبارة جزء من النص (Substring) الذي قام باستدعائها.

Substr () function Define it The text of the statement returns a portion of the text (Substring) that called it.

عند إستدعاء هذه الدالة عندنا خيارين:

  • تحديد من أين تبدأ.

  • تحديد من أين تبدأ و كم حرف نريد أن نأخذ بالضبط.

إذا لم نقم بتحديد كم حرف نريد أن نأخذ من النص, سترجع كل نص الموجود إبتداءاً من رقم الـ index الذي مررناه مكان الباراميتر pos إلى آخر index موجود في النص الذي قام باستدعائها.



بنا الدالة () substring

هناك شكلين من هذه الدالة. أي يمكن إستدعاءها بطريقتين مختلفتين.

                  string substr (size_t pos = 0, size_t len = npos) const
  


باراميترات الدالة () substring

  • مكان الباراميتر pos نمرر index الحرف الذي نريد البدء بنسخ النص من عنده.

  • مكان الباراميتر len يمكنك تمرير رقم يمثل كم حرف تريد أن تنسخ من عند index الباراميتر pos إن لم ترد نسخ كل النص الموجود.



قيمة ارجاع الدالة () substring

ترجع String عبارة عن substr من الـ String الذي قام باستدعائها.



أخطاء محتملة تحدث في الدالة () substring

std::out_of_range: في حال قمت بتمرير رقم index غير موجود في النص مكان الباراميتر pos سيظهر لك الخطأ التالي عند تشغيل البرنامج.



مثال على الدالة () substring

Main.cpp
                    #include <iostream>

	  using namespace std;

	  int main()
	  {
	  // str هنا قمنا بتعريف متغير نصي إسمه
	  string str = "welcome to alawiri.com, best site for learning";

	  cout << str.substr(11) << endl;       // رقم 11 index كل النص الموجود إبتداءاً من الحرف الموجود على الـ substr() هنا سترجع الدالة
	  cout << str.substr(11, 7) << endl;    // رقم 11 index أول 7 أحرف موجودة في النص إبتداءاً من الـ substr() هنا سترجع الدالة

	  return 0;
	  }
	

سنحصل على النتيجة التالية عند التشغيل.

                    alawiri.com, best site for learning
	  alawiri
	
___________

الدالة find() في السي بلاس بلاس

تعريفها

تبحث الدالة () find في النص الذي قام بإستدعائها عن أول index يوجد إبتداءاَ من عنده نفس النص أو الحرف الذي نمرره لها مكان الباراميتر str و ترجعه.

بمعنى آخر, نعطيها أي نص أو حرف, فترجع لنا رقم أول خانة وجد عندها.

Find () function Define it It searches in the text that called it for the first index. Starting with it, there is the same text or letter that we pass to it in place of the parameter str and it returns it. In other words, we give it any text or letter, and it returns to us the number of the first digit it found.

إفتراضياً هذه الدالة تبدأ عملية البحث من الـ index رقم 0 إلى آخر index موجود في النص الذي قام باستدعائها.
و في حال لم يتم العثور على النص المراد البحث عنه ترجع قيمة الثابت string::npos.



بنا الدالة () find

                  size_t find (const string& str, size_t pos = 0) const
  
                  size_t find (const string& str, size_t pos = 0) const noexcept
  


باراميترات الدالة () find

  • مكان الباراميتر str نمرر النص الذي ستبحث عنه الدالة في النص الذي قام بإستدعائها.

  • الباراميتر pos هو باراميتر إختياري, نضع مكانه رقم في حال أردنا جعل الدالة تبدأ عملية البحث من رقم index محدد و ليس من الـ index رقم 0.



قيمة ارجاع الدالة () find

ترجع رقم يمثل أول index وجد عنده النص أو الحرف الذي مررناه لها, و ترجع قيمة الثابت string::npos في حال لم يتم إيجاد تطابق.



المثال الأول على الدالة () find

Main.cpp
                    #include <iostream>

	  using namespace std;

	  int main()
	  {
	  // str هنا قمنا بتعريف متغير نصي إسمه
	  string str = "I have one cat. My cat like milk.";

	  // و بالتالي سيتم طباعة 11 'c' يوجد عندها النص str هنا قمنا بطباعة رقم أول خانة في المتغير
	  cout << str.find("c") << endl;

	  // و بالتالي سيتم طباعة 11 'cat' يوجد عندها النص str هنا قمنا بطباعة رقم أول خانة في المتغير
	  cout << str.find("cat") << endl;

	  // مع الإشارة إلى أننا بدأنا عملية البحث من الخانة رقم 14. و بالتالي سيتم طباعة 19 'cat' يوجد عندها النص str هنا قمنا بطباعة رقم أول خانة في المتغير
	  cout << str.find("cat", 14) << endl;

	  // string::npos و بما أنه لا يوجد هذه الكلمة, سيتم طباعة قيمة الثابت .'dog' يوجد عندها النص str هنا قمنا بطباعة رقم أول خانة في المتغير
	  cout << str.find("dog") << endl;

	  return 0;
	  }
	

سنحصل على النتيجة التالية عند التشغيل.

                    11
	  11
	  19
	  18446744073709551615
	


في البرامج الفعلية, قد يكون أسلوب التشييك المستخدم لمعرفة ما إن تم إيجاد القيمة أم لا هو الأنسب لك.

المثال الثاني في الدالة () find

Main.cpp
                    #include <iostream>

	  using namespace std;

	  int main()
	  {
	  // keyword و الكلمة التي سنبحث عنها في المتغير str هنا قمنا بتعريف النص الأساسي في المتغير
	  string str = "I have one cat. My cat like milk.";
	  string keyword = "cat";

	  // result و تخزين نتيجة البحث في المتغير keyword الموجودة في المتغير "cat" عن الكلمة str هنا قمنا بالبحث في النص الموجود في المتغير
	  size_t result = str.find(keyword);

	  // string::npos مع قيمة result هنا قمنا بمقارنة قيمة
	  // إن لم تكونا متساويتين, فهذا يعني أنه تم إيجاد الكلمة التي بحثنا عنها و سيتم طباعة رقم أول خانة تم عنده إيجاد الكلمة
	  if (result != string::npos)
	  {
	  cout << "'" << keyword << "' is found at index " << result;
	  }
	  // إذا كانت متساويتين فهذا يعني أنه لم يتم إيجاد الكلمة التي بحثنا عنها و سيتم طباعة أنه لم يتم العثور عليها
	  else
	  {
	  cout << "'" << keyword << "' is not found!";
	  }

	  return 0;
	  }
	

سنحصل على النتيجة التالية عند التشغيل.

                    'cat' is found at index 11
	
_________

الدالة rfind() في السي بلاس بلاس

تعريفها

تبحث الدالة () rfind في النص الذي قام بإستدعائها عن آخر index يوجد إبتداءاَ من عنده نفس النص أو الحرف الذي نمرره لها مكان الباراميتر str و ترجعه.
بمعنى آخر, نعطيها أي نص أو حرف, فترجع لنا رقم آخر خانة وجد عندها.

Rfind () function Define it It searches in the text that called it for the last index. Starting with it, there is the same text or letter that we pass to it in place of the parameter str and it returns it. In other words, we give it any text or letter, and it returns to us the number of the last digit it found.

إفتراضياً هذه الدالة تبدأ عملية البحث من الـ index الأخير في النص الذي قام باستدعائها إلى الـ index رقم 0.
و في حال لم يتم العثور على النص المراد البحث عنه ترجع قيمة الثابت string::npos.



بنا الدالة () rfind

                  size_t rfind (const string& str, size_t pos = 0) const
  
                  size_t rfind (const string& str, size_t pos = 0) const noexcept
  


باراميترات الدالة () rfind

  • مكان الباراميتر str نمرر النص الذي ستبحث عنه الدالة في النص الذي قام بإستدعائها.

  • الباراميتر pos هو باراميتر إختياري, نضع مكانه رقم في حال أردنا جعل الدالة توقف عملية البحث قبل الوصول لرقم index محدد.



قيمة ارجاع الدالة () rfind

ترجع رقم يمثل آخر index وجد عنده النص أو الحرف الذي مررناه لها, و ترجع قيمة الثابت string::npos في حال لم يتم إيجاد تطابق.



المثال الأول على الدالة () rfind

Main.cpp
                    #include <iostream>

	  using namespace std;

	  int main()
	  {
	  // str هنا قمنا بتعريف متغير نصي إسمه
	  string str = "I have one cat. My cat like milk.";

	  // و بالتالي سيتم طباعة 19 'c' يوجد عندها النص str هنا قمنا بطباعة رقم آخر خانة في المتغير
	  cout << str.rfind("c") << endl;

	  // و بالتالي سيتم طباعة 19 'cat' يوجد عندها النص str هنا قمنا بطباعة رقم آخر خانة في المتغير
	  cout << str.rfind("cat") << endl;

	  // مع الإشارة إلى أننا أوقفنا عملية البحث عند الخانة رقم 14. و بالتالي سيتم طباعة 11 'cat' يوجد عندها النص str هنا قمنا بطباعة رقم آخر خانة في المتغير
	  cout << str.rfind("cat", 14) << endl;

	  // string::npos و بما أنه لا يوجد هذه الكلمة, سيتم طباعة قيمة الثابت .'dog' يوجد عندها النص str هنا قمنا بطباعة رقم آخر خانة في المتغير
	  cout << str.rfind("dog") << endl;

	  return 0;
	  }
	

سنحصل على النتيجة التالية عند التشغيل.

                    19
	  19
	  11
	  18446744073709551615
	


في البرامج الفعلية, قد يكون أسلوب التشييك المستخدم لمعرفة ما إن تم إيجاد القيمة أم لا هو الأنسب لك.

المثال الثاني في الدالة () rfind

Main.cpp
                    #include <iostream>

	  using namespace std;

	  int main()
	  {
	  // keyword و الكلمة التي سنبحث عنها في المتغير str هنا قمنا بتعريف النص الأساسي في المتغير
	  string str = "I have one cat. My cat like milk.";
	  string keyword = "cat";

	  // result و تخزين نتيجة البحث في المتغير keyword الموجودة في المتغير "cat" عن الكلمة str هنا قمنا بالبحث في النص الموجود في المتغير
	  size_t result = str.rfind(keyword);

	  // string::npos مع قيمة result هنا قمنا بمقارنة قيمة
	  // إن لم تكونا متساويتين, فهذا يعني أنه تم إيجاد الكلمة التي بحثنا عنها و سيتم طباعة رقم آخر خانة تم عنده إيجاد الكلمة
	  if (result != string::npos)
	  {
	  cout << "'" << keyword << "' is found at index " << result;
	  }
	  // إذا كانت متساويتين فهذا يعني أنه لم يتم إيجاد الكلمة التي بحثنا عنها و سيتم طباعة أنه لم يتم العثور عليها
	  else
	  {
	  cout << "'" << keyword << "' is not found!";
	  }

	  return 0;
	  }
	

سنحصل على النتيجة التالية عند التشغيل.

                    'cat' is found at index 19
	
_________

الدالة replace() في لغة ++C

تعريفها

تستخدم الدالة () replace لتعديل جزء محدد من النص الذي قام باستدعائها.

The replace () function Define it Used to modify a specific part of the text that called it.

بنا الدالة () replace

                  string& replace (size_t pos, size_t len, const string& replacement);
  


باراميترات الدالة () replace

  • مكان الباراميتر pos نمرر index الحرف الذي نريد البدء بتغيير النص من عنده.

  • مكان الباراميتر len نمرر رقم يمثل كم حرف تريد أن تبدل إعتباراً من عند index الباراميتر pos.

  • مكان الباراميتر replacement نمرر النص الذي سيتم إضافته مكان الجزئية التي سيتم حذفها.



قيمة إرجاع الدالة () replace

ترجع النص الناتج من عملية التبديل.



مثال في الدالة () replace

Main.cpp
                    #include <iostream>

	  using namespace std;

	  int main()
	  {
	  // str هنا قمنا بتعريف متغير نصي إسمه
	  string str = "welcome to youtube.com";

	  // "alawiri" رقم 11 بالنص index إبتداءاً من الحرف الموجود في الـ str هنا قمنا بتبديل أول 7 أحرف موجودة في النص
	  str.replace(11, 7, "alawiri");
// بعد أن قمنا بإجراء تعديل عليها str هنا قمنا بطباعة قيمة المتغير cout << str; return 0; }

سنحصل على النتيجة التالية عند التشغيل.

                    welcome to alawiri.com                 
__________

الدالة swap() في لغة ++C

تعريفها

تبدل الدالة () swap محتوى النص الذي قام بإستدعائها بمحتوى النص الذي نمرره مكان الباراميتر str.
كما أنها تبدل محتوى المتغير الذي نمرره مكان الباراميتر str بمحتوى النص الذي قام باستدعائها.

Swap () function Define it The content of the text that called it is replaced by the content of the text that we pass it in place of the str parameter. It also replaces the content of the variable we pass in place of the str parameter with the content of the text that called it.

بنا الدالة () swap

                  void swap(string& str)
  


باراميترات الدالة () swap

  • مكان الباراميتر str نمرر المتغير النص الذي سيتم تبادل المحتوى معه.



قيمة ارجاع الدالة () swap

لا ترجع قيمة .



مثال على استخدام الدالة () swap

Main.cpp
                    #include <iostream>

	  using namespace std;

	  int main()
	  {
	  // s2 و متغير نصي آخر إسمه s1 هنا قمنا بتعريف متغير نصي إسمه
	  string s1 = "alawiri";
string s2 = "youtube"; // s2 و s1 هنا قمنا بتبديل قيمة المتغيرين s1.swap(s2); // بعد أن قمنا بتديل قيمهما s2 و s1 هنا قمنا بطباعة قيمة cout << "s1 = " << s1 << endl; cout << "s2 = " << s2 << endl; return 0; }

سنحصل على النتيجة التالية عند التشغيل.

                    s1 = youtube
	  s2 = alawiri
	
_________

الدالة append() في لغة ++C

تعريفها

تضيف الدالة () append قيمة النص الذي نمرره مكان الباراميتر str في آخر النص الذي قام باستدعائها و ترجع النص الناتج عند دمجهمها معاً.

Append () function Define it It adds the value of the text we pass in place of the str parameter at the end of the text that called it and returns the resulting text when combined together.

بنا الدالة () append

                  string& append (const string& str)
  


باراميترات الدالة () append

  • مكان الباراميتر s نمرر النص الذي سيضاف في آخر النص الذي قام بإستدعاء الدالة.



قيمة ارجاع الدالة () append

ترجع نص جديد يحتوي على قيمة النص الذي قام باستدعاء الدالة مضافاً إليه قيمة النص الذي نمرره للدالة.



مثال على استخدام الدالة () append

Main.cpp
                    #include <iostream>

	  using namespace std;

	  int main()
	  {
	  // هنا قمنا بتعريف متغيرين يحتويان على نصوص
	  string s1 = "This part is from s1. ";
	  string s2 = "This part is from s2";

	  // s1 في آخر المتغير s2 قيمة المتغير append() ستضيف الدالة 
	  // s3 بعدها, الجواب الذي سيرجع سيتم تخزينه في
	  string s3 = s1.append(s2);

	  // s3 هنا قمنا بطباعة قيمة المتغير
	  cout << s3;

	  return 0;
	  }
	

سنحصل على النتيجة التالية عند التشغيل.

                    This part is from s1. This part is from s2
	


لعلك تتسائل حتماً ما الفرق بين استخدام الدالة append() و بأن أن نكتب التالي.

                  string s3 = s1 + s2;
  

الفرق فقط أن الدالة append() تتنفذ بشكل أسرع.

___________

الدالة empty() في لغة ++C

تعريفها

تستخدم الدالة () empty لمعرفة ما إن كان النص الذي قام باستدعائها, فارغاً أم لا.

Empty () function Define it Used to check whether the text that called it is blank or not.

بنا الدالة () empty

                  bool empty() const
  
                  bool empty() const noexcept
  


باراميترات الدالة () empty

لا تقبل أي باراميتر .



قيمة إرجاع الدالة () empty

ترجع 1 - و الذي يعني true - إذا كان النص الذي قام باستدعائها غير فارغ (أي يوجد فيه حرف على الأقل).
و ترجع 0 - و الذي يعني false - إن لم يكن كذلك.



مثال على استخدام الدالة () empty

Main.cpp
                    #include <iostream>

	  using namespace std;

	  int main()
	  {
	  // لا يحتوي على أي نص s هنا قمنا بتعريف متغير إسمه
	  string s;

	  // فارغ s يحتوي على قيمة أم لا. و سيتم طباعة 0 لأن s هنا قمنا بطباعة ما إن كان المتغير
	  cout << s.empty() << endl;

	  // s هنا قمنا بوضع نص في المتغير
	  s = "I like cats";

	  // غير فارغ s يحتوي على قيمة أم لا. و سيتم طباعة 1 لأن s هنا قمنا بطباعة ما إن كان المتغير
	  cout << s.empty();

	  return 0;
	  }
	

سنحصل على النتيجة التالية عند التشغيل.

                    0
	  1
	
________

الدالة clear() في لغة ++C

تعريفها

تمسح الدالة () clear كل الأحرف الموجودة في النص الذي قام باستدعائها.

Clear () function Define it Clears all characters in the text that called it.

بنا الدالة () clear

                  bool clear() const
  
                  bool clear() const noexcept
  


باراميترات الدالة () clear

لا تقبل أي باراميتر.



قيمة ارجاع الدالة () clear

لا ترجع قيمة .



مثال على استخدام الدالة () clear

Main.cpp
                    #include <iostream>

	  using namespace std;

	  int main()
	  {
	  // يحتوي على نص s هنا قمنا بتعريف متغير إسمه
	  string s = "I like cats";

	  // s هنا قمنا بمسح النص الموجود في المتغير
	  s.clear();

	  // و بالطبع لن يتم طباعة أي شيء لأنه فارغ s هنا قمنا بطباعة محتوى المتغير
	  cout << s;

	  return 0;
	  }
	

سنحصل على النتيجة التالية عند التشغيل.

                  
________

الدالة compare() في لغة ++C

تعريفها

تقارن الدالة () compare حجم النص الذي قام باستدعائها مع حجم النص الذي نمرره لها مكان الباراميتر str.
و ترجع رقم يمثل فرق الحجم بينهما.

Compare () function Define it Compare the size of the text that called it with the size of the text that we pass it to in place of the parameter str. And returns a number that represents the size difference between them.

بنا الدالة () compare

هناك شكلين من هذه الدالة. أي يمكن إستدعاءها بطريقتين مختلفتين.

                  int compare (const string& str) const
  
                  int compare (const string& str) const noexcept
  
                  int compare (const string& str) const noexcept
  


باراميترات الدالة () compare

مكان الباراميتر str نمرر النص الذي ستتم مقارنته مع النص الذي قام باستدعاء الدالة.



قيمة إرجاع الدالة () compare

  • ترجع 0 في حال كان حجمهم متساوي.

  • ترجع 1 في حال كان عدد أحرف النص الذي قام باستدعائها أكبر.

  • ترجع -1 في حال كان عدد أحرف النص الذي قام باستدعائها أصغر.



مثال على استخدام الدالة () compare

Main.cpp
                    #include <iostream>

	  using namespace std;

	  int main()
	  {
	  string s1 = "I like cats.";
	  string s2 = "I'm learning c++ from alawiri.com";                    string s3 = s1;

	  cout << s1.compare(s2) << endl;    // s2 أقل من عدد أحرف s1 هنا سيتم طباعة 1- لأن عدد أحرف
	  cout << s2.compare(s1) << endl;    // s1 أكبر من عدد أحرف s2 هنا سيتم طباعة 1 لأن عدد أحرف
	  cout << s1.compare(s3) << endl;    // s3 يساوي عدد أحرف s1 هنا سيتم طباعة 0 لأن عدد أحرف

	  return 0;
	  }
	

سنحصل على النتيجة التالية عند التشغيل.

                    -1
	  1
	  0
	
_______

الدالة insert() في لغة ++C

تعريفها

تضيف الدالة () insert قيمة النص الذي نمرره مكان الباراميتر str في النص الذي قام باستدعائها عند Index الخانة التي نحددها مكان الباراميتر pos و ترجع النص الناتج عند دمجهمها معاً.

Insert function () Define it The value of the text that we pass adds the parameter location at the index that called it at the index to the place we specify the place of the parameter pos and returns the text when combined together.

بنا الدالة () insert

                  string& insert (size_t pos, const string& str)
  


باراميترات الدالة () insert

  • مكان الباراميتر str نمرر النص الذي سيضاف في النص الذي قام بإستدعاء الدالة.

  • مكان الباراميتر pos نمرر رقم الـ index الذي نريد إضافة النص عنده.



قيمة إرجاع الدالة () insert

ترجع نص جديد يحتوي على قيمة النص الذي قام باستدعاء الدالة مضافاً إليه قيمة النص الذي نمرره للدالة.



مثال على استخدام الدالة () insert

Main.cpp
                    #include <iostream>

	  using namespace std;

	  int main()
	  {
	  // str هنا قمنا بتعريف متغير نصي إسمه
	  string str = "welcome alawiri.com";
	  // str رقم 8 في النص index عند الـ "to " هنا قمنا بإضافة الكلمة
	  str.insert(8, "to ");

	  // بعد أن قمنا بإجراء تعديل عليها str هنا قمنا بطباعة قيمة المتغير
	  cout << str;

	  return 0;
	  }
	

سنحصل على النتيجة التالية عند التشغيل.

                    welcome to alawiri.com
___________