موصى به, 2021

اختيار المحرر

الفرق بين صفيف الحرف وسلسلة

يدعم C ++ كل من مصفوفة الأحرف والسلسلة ، حيث أن C ++ له فوائد كبيرة في استخدام كل منهما. ولكن ، عدم القدرة على العمل على صفيف الشخصية يثير تطور سلسلة الصف. يحتوي كل من مصفوفة الأحرف والسلسلة على تسلسل الأحرف. لكن الفرق الأساسي بين مصفوفة الأحرف والسلسلة هو أنه لا يمكن تشغيل "مجموعة الأحرف" مع المشغلين المعياريين ، بينما يمكن تشغيل "سلسلة" الأشياء مع المشغلين المعياريين. دعونا دراسة الاختلافات الأخرى بين صفيف الحروف والسلسلة.

رسم بياني للمقارنة

أساس للمقارنةصفيف الشخصيةخيط
الأساسيةصفيف الحرف هو مجموعة من المتغيرات ، من نوع البيانات الشخصية.السلسلة هي فئة ومتغيرات السلسلة هي كائن الفئة "سلسلة".
بناء الجملةchar array_name [size]؛string string_name؛
الفهرسةيمكن الوصول إلى حرف فردي في مصفوفة أحرف بواسطة الفهرس الخاص به في الصفيف.في السلسلة يمكن الوصول إلى الحرف المعين بواسطة الدالة "string_name.charAt (index)".
نوع البياناتصفيف الحروف لا يحدد نوع البيانات.تحدد سلسلة نوع بيانات في C ++.
العاملينلا يمكن تطبيق عوامل التشغيل في C ++ على صفيف الأحرف.يمكنك تطبيق عامل C ++ قياسي على السلسلة.
حدوديتم تجاوز حدود الصفيف بسهولة.الحدود لن تتجاوز.
التمكن منالوصول السريع.الوصول البطيء.


تعريف صفيف الحرف

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

دعونا نأخذ مثالا على صفيف الشخصية: -

 char name [] = {'A'، 'j'، 'a'، 'y'، '\ 0'}؛ or char name [] = "Ajay"؛ 

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

نهاية السلسلة هي دائماً حرف فارغ؛ هذا هو الحرف الانتهاء من مجموعة الأحرف. صفيف أحرف ليس نوع بيانات مضمنة؛ نخلق مجموعة من الشخصيات عن طريق التصريح بها. لا يمكنك تطبيق عوامل تشغيل قياسية على صفيف أحرف. للعمل على صفيف الأحرف ، هناك بعض الوظائف المضمنة مثل (strlen () ، strlwr () ، strupr () ، strcat ()). بما أن المشغلين المعيدين لا يمكن تطبيقهم على مصفوفة أحرف ، فلا يمكنهم المشاركة في أي تعبير.

يمكن أيضاً إنشاء مؤشر الحرف إلى صفيف أحرف.

دعونا نفهم ذلك مع مثال.

 char s1 [] = "مرحبًا"؛ char s2 [] = "Sir"؛ s1 = s1 + s2؛ // لا يمكن تطبيق عوامل تشغيل الخطأ s2 = s1؛ // error character charner s * s = "Morning"؛ char * p؛ ص = ق. // ينفذ 

في المثال أعلاه ، أعلنا عن صفيفتين من الأحرف s1 و s2 ومؤشرين حرفين s و p. يتم تهيئة مصفوفة الأحرف s1 و s2 ، يمكننا أن نرى أنه لا مشغل الإضافة (+) ولا مشغل التعيين يعمل على مصفوفة الأحرف. ولكن يمكن تعيين مؤشر حرف لمؤشر أحرف آخر.

تذكر أنه بمجرد تهيئة مصفوفة الأحرف ، لا يمكن التهيئة مرة أخرى لمجموعة أخرى من الأحرف. الوصول إلى صفيف أحرف أو سلسلة منتهية خالية سريع بالمقارنة مع السلسلة في C ++.

تعريف السلسلة

السلسلة ليست نوع بيانات مضمنة من C ++. انها كائن فئة من نوع "سلسلة". كما هو الحال في C ++ إنشاء فئة هو مثل إنشاء "نوع". "سلسلة" الفصل هو جزء من مكتبة C ++. انها تحمل مجموعة من الطابع أو صفيف الشخصية ككل. هناك ثلاثة أسباب وراء تطوير فئة سلسلة قياسية.

  • الأول هو "الاتساق" ، صفائف الأحرف ليست أنواع بيانات في حد ذاتها.
  • الثانية هي "الراحة" ، لا يمكنك استخدام المشغلين القياسية على مجموعة من الشخصيات.
  • ثالثًا ، "السلامة" ، يتم تجاوز حدود الصفيف بسهولة.

دعونا نفهم السلاسل مع مثال.

 string s1؛ s1 = "مرحبًا"؛ string s2 ("صباح الخير") ؛ string s3 = "Hennery"؛ سلسلة s4؛ 

في الإعلان أعلاه ، يتم الإعلان عن أربعة متغيرات سلسلة أو كائنات (s1 ، s2 ، s3 ، s4). في الإعلان أعلاه ، كنت قد أظهرت ثلاث طرق لتهيئة السلسلة. تم التصريح عن السلسلة s1 ثم تهيئتها بشكل منفصل. تتم تهيئة السلسلة s2 بواسطة مُنشئ الفئة "String". تتم تهيئة السلسلة s3 في وقت الإعلان الخاص بها كما يفعل نوع البيانات العادي. يمكننا تطبيق عامل التشغيل القياسي على متغيرات السلسلة.

 s4 = s1؛ // تعيين كائن سلسلة واحد إلى s4 = s1 + s2 أخرى؛ // إضافة سلسلتين وتخزين النتيجة في السلسلة الثالثة إذا كانت (s3> s2) // تقارن بين سطرين من السلاسل s5 (s1)؛ إنشاء كائن سلسلة جديد باستخدام كائن سلسلة موجود 

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

الوصول إلى السلسلة بطيء مقارنة صفيف أحرف أو سلسلة منتهية خالية.

الاختلافات الأساسية بين الأحرف صفيف وسلسلة

  1. مصفوفة الأحرف هي مجموعة من المتغيرات التي هي من نوع البيانات الشخصية. String هو فئة يتم إنشاء مثيل لإعلام السلاسل.
  2. باستخدام قيمة فهرس يمكنك الوصول إلى حرف من صفيف أحرف. على الجانب الآخر ، إذا كنت تريد الوصول إلى حرف معين في سلسلة ، يمكنك الوصول إليه بواسطة string_name.charAt (فهرس) الدالة.
  3. نظرًا لأن المصفوفة ليست نوعًا من أنواع البيانات ، فإن الحرف أيضًا ليس نوعًا من أنواع البيانات. من ناحية أخرى ، فإن السلسلة عبارة عن فئة بمثابة نوع مرجع ، يمكن القول أن السلسلة هي نوع بيانات.
  4. لا يمكنك تطبيق أي مشغل على صفيف أحرف بينما يمكنك تطبيق عوامل التشغيل على String.
  5. كونها صفيف مصفوفة صفيف لها طول ثابت ويمكن تجاوز حدودها بسهولة. حيث لا توجد أي حدود في السلسلة.
  6. يتم تخزين عناصر المصفوفة في موقع ذاكرة متجاورة وبالتالي يمكن الوصول إليها بشكل أسرع من متغير السلسلة.

استنتاج:

أدى عدم القدرة على العمل على صفيف الأحرف إلى تطوير فئة السلسلة القياسية.

Top