کریکٹر ارے اور سٹرنگ کے مابین فرق

مصنف: Laura McKinney
تخلیق کی تاریخ: 1 اپریل 2021
تازہ کاری کی تاریخ: 6 مئی 2024
Anonim
47 - سٹرنگز یا کریکٹر اریز - C پروگرامنگ
ویڈیو: 47 - سٹرنگز یا کریکٹر اریز - C پروگرامنگ

مواد


C ++ دونوں کی حمایت کرتا ہے ، کریکٹر سرنی اور تار، جیسا کہ ان دونوں کو استعمال کرنے میں C ++ کے کافی فوائد ہیں۔ لیکن ، کردار صف میں کام کرنے سے قاصر ہونے سے طبقاتی تار کی ترقی میں اضافہ ہوتا ہے۔ ایک حرف صف اور سٹرنگ دونوں ہی حرفوں کی ترتیب پر مشتمل ہوتے ہیں۔ لیکن کریکٹر ارے اور سٹرنگ کے درمیان بنیادی فرق یہ ہے کہ "کریکٹر سرنی" کو معیاری آپریٹرز کے ساتھ نہیں چلایا جاسکتا ، جبکہ ، "اسٹرنگ" اشیاء معیاری آپریٹرز کے ساتھ چل سکتی ہیں۔ آئیے ایک کردار صف اور تار کے مابین دوسرے فرق کا مطالعہ کرتے ہیں۔

  1. موازنہ چارٹ
  2. تعریف
  3. کلیدی اختلافات
  4. نتیجہ اخذ کرنا

موازنہ چارٹ

موازنہ کی بنیادکریکٹر ارےسٹرنگ
بنیادیکریکٹر سرنی متغیرات کا جمع کرنا ہے ، کیریکٹر ڈیٹا ٹائپ کا۔سٹرنگ کلاس ہے اور اسٹرنگ کی متغیر کلاس "اسٹرنگ" کا مقصد ہے۔
نحوچار سرنی_ نام؛سٹرنگ سٹرنگ_نیم؛
اشاریہ کاریکسی ایک کردار کے صف میں ایک انفرادی حرف اس کے اشارے سے سرے میں حاصل کیا جاسکتا ہے۔سٹرنگ میں مخصوص کردار تک رسائی "تقریب_نور_کھاراٹ (اشاریہ)" کے ذریعہ حاصل کی جاسکتی ہے۔
ڈیٹا کی قسمایک کردار سرنی ڈیٹا ٹائپ کی وضاحت نہیں کرتی ہے۔ایک تار C ++ میں ڈیٹا ٹائپ کی وضاحت کرتا ہے۔
آپریٹرزC ++ میں آپریٹرز کریکٹر ارے پر لاگو نہیں ہوسکتے ہیں۔آپ اسٹرنگ پر معیاری سی ++ آپریٹر لگا سکتے ہیں۔
حدصفوں کی حدود آسانی سے ختم ہوجاتی ہیں۔حدود سے تجاوز نہیں کیا جائے گا۔
رسائیتیز رسائیآہستہ آہستہ رسائی۔


کریکٹر ارے کی تعریف


ایک کردار صف "چار" ڈیٹا ٹائپ کے متغیرات کا مجموعہ ہے۔ یہ ایک جہتی سرنی یا دو جہتی سرنی ہوسکتی ہے۔ اسے "نال ٹرمنیٹڈ سٹرنگ" بھی کہا جاتا ہے۔ ایک کریکٹر سرنی ان حروف کا ایک تسلسل ہے جو لگاتار میموری پتے میں ذخیرہ ہوتے ہیں۔ ایک کردار صف میں ، کسی خاص حرف تک اس کی اشاریہ تک رسائی حاصل کی جاسکتی ہے۔ ایک "نول کیریکٹر" کردار کی صف کو ختم کرتا ہے۔

آئیے ایک کردار کی صف کی ایک مثال لیتے ہیں: -

چار نام = {A، j، a، y، 0}؛ یا چار نام = "اجے"؛

یہاں ، "چار" ایک کریکٹر ڈیٹا ٹائپ ہے ، "نام" کریکٹر ارے کا متغیر نام ہے۔ میں نے کردار کی صف کو شروع کرنے کے لئے دو طریقے دکھائے تھے۔ پہلے طریقہ میں ، نال کا واضح طور پر تذکرہ کیا گیا ہے اور دوسرے طریقہ میں ، مرتب خود بخود خالی داخل کرتا ہے۔

تار کا اختتام ہمیشہ ایک کالا کردار ہوتا ہے۔ یہ کردار صف کے اختتامی کردار ہے۔ کریکٹر ارے بلٹ میں ڈیٹا ٹائپ نہیں ہوتا ہے۔ ہم اس کا اعلان کرکے کردار سرنی تخلیق کرتے ہیں۔ آپ کریکٹر سرنی پر معیاری آپریٹرز کا اطلاق نہیں کرسکتے ہیں۔ کریکٹر ارے پر کام کرنے کے لئے کچھ بلٹ ان فنکشن موجود ہیں جیسے ، (strlen ()، strlwr ()، strupr ()، strcat ())۔ چونکہ معیاری آپریٹرز کو کسی کردار صف میں نہیں لاگو کیا جاسکتا ہے ، لہذا وہ کسی بھی اظہار رائے میں حصہ نہیں لے سکتے ہیں۔


ایک حرف صف میں اشارہ کرنے والا کردار بھی بنایا جاسکتا ہے۔

آئیے اسے ایک مثال کے ساتھ سمجھیں۔

چار s1 = "ہیلو"؛ چار s2 = "سر"؛ s1 = s1 + s2؛ // غلطی آپریٹرز s2 = s1 کا اطلاق نہیں کیا جاسکتا ہے۔ // نقص کریکٹر پوائنٹر چار * s = "صبح"؛ چار * پی؛ p = s؛ // پھانسی

مذکورہ بالا مثال میں ، ہم نے دو کیریئر ایری ایس 1 ، ایس 2 اور دو کریکٹر پوائنٹرز ایس اور پی کا اعلان کیا تھا۔ کریکٹر سرنی S1 اور s2 شروع کردیئے گئے ہیں ، ہم دیکھ سکتے ہیں کہ نہ ہی اضافی آپریٹر (+) اور نہ ہی تفویض آپریٹر کیریکٹر سرنی پر کام کرتا ہے۔ لیکن ایک کریکٹر پوائنٹر کو کسی اور کریکٹر پوائنٹر کو تفویض کیا جاسکتا ہے۔

یاد رکھیں ایک بار جب کردار کی صف شروع ہوجاتی ہے تو اسے دوبارہ کردار کے دوسرے سیٹ پر شروع نہیں کیا جاسکتا ہے۔ C ++ میں اسٹرنگ کے مقابلہ میں کسی کردار کی صف یا نالی ختم شدہ تار تک رسائی تیز ہے۔

سٹرنگ کی تعریف

سٹرنگ C ++ کی بلٹ ان ڈیٹا ٹائپ نہیں ہے۔ یہ قسم کا ایک کلاس آبجیکٹ ہے۔ جیسا کہ C ++ میں کلاس بنانا بھی "قسم" پیدا کرنے کے مترادف ہے۔ کلاس "سٹرنگ" C ++ لائبریری کا ایک حصہ ہے۔ اس میں مجموعی طور پر کردار یا کردار صف کا مجموعہ ہے۔ معیاری سٹرنگ کلاس کی ترقی کے پیچھے تین وجوہات ہیں۔

  • پہلا "مستقل مزاجی" ہے ، کردار صفیں اپنے طور پر ڈیٹا کی قسمیں نہیں ہیں۔
  • دوسرا "سہولت" ہے ، آپ کسی کردار صف میں معیاری آپریٹرز استعمال نہیں کرسکتے ہیں۔
  • تیسرے "حفاظت" ہے ، صفوں کی حدیں آسانی سے ختم ہوجاتی ہیں۔

آئیے ایک مثال کے ساتھ تاروں کو سمجھیں۔

سٹرنگ s1؛ s1 = "ہیلو"؛ سٹرنگ ایس 2 ("گڈ مارننگ")؛ سٹرنگ s3 = "ہنری"؛ سٹرنگ ایس 4؛

مذکورہ اعلامیے میں ، چار سٹرنگ متغیر یا اشیاء (ایس 1 ، ایس 2 ، ایس 3 ، ایس 4) قرار دیئے گئے ہیں۔ مذکورہ اعلامیہ میں ، میں نے سٹرنگ کو شروع کرنے کے تین طریقے دکھائے ہیں۔ اسٹرنگ S1 کا اعلان کیا جاتا ہے اور پھر علیحدہ علیحدہ آغاز کیا جاتا ہے۔ سٹرنگ ایس 2 کلاس "سٹرنگ" کے کمسٹر کے ذریعہ شروع کی گئی ہے۔ عام طور پر ڈیٹا ٹائپ کرتے ہی اسٹرنگ ایس 3 کو اس کے اعلان کے وقت شروع کیا جاتا ہے۔ ہم سٹرنگ متغیرات پر معیاری آپریٹر لاگو کرسکتے ہیں۔

s4 = s1؛ // ایک سٹرنگ آبجیکٹ دوسرے s4 = s1 + s2 کو تفویض کرنا؛ // دو سٹرنگ شامل کرنا اور تیسری تار میں نتیجہ اسٹور کرنا اگر (s3> s2) // دو ڈور کے تاروں کا موازنہ کریں s5 (s1)؛ موجودہ سٹرنگ آبجیکٹ کا استعمال کرتے ہوئے ایک نیا سٹرنگ آبجیکٹ تشکیل دینا

مذکورہ کوڈ میں ، مختلف آپریٹرز ایک تار پر لگائے جاتے ہیں اور مختلف کاروائیاں انجام دی جاتی ہیں۔ پہلا بیان ایک سٹرنگ آبجیکٹ کو دوسرے سٹرنگ آبجیکٹ میں کاپی کرتا ہے۔ دوسرے بیان میں ، دو سٹرنگ ایک دوسرے کے ساتھ مرتب کی جاتی ہیں اور تیسری سٹرنگ میں اسٹور ہوتی ہیں۔ تیسرے بیان میں ، دو تار کا موازنہ کیا گیا ہے۔ چوتھے بیان میں ، پہلے سے موجود اسٹرنگ آبجیکٹ کا استعمال کرتے ہوئے ایک نیا سٹرنگ آبجیکٹ تیار کیا جاتا ہے۔

اسٹرنگ تک رسائی کسی کردار صف یا کالعدم تار کے مقابلے میں سست ہے۔

کریکٹر ارے اور سٹرنگ کے مابین کلیدی اختلافات

  1. کریکٹر سرنی متغیرات کا ایک مجموعہ ہے جو کیریکٹر ڈیٹا ٹائپ کی ہے۔ سٹرنگ ایک کلاس ہے جسے ڈوروں کے اعلان کے ل to فوری کیا جاتا ہے۔
  2. اشاریہ قیمت کا استعمال کرتے ہوئے آپ کسی حرف سے متعلق کردار تک رسائی حاصل کرسکتے ہیں۔ دوسری طرف ، اگر آپ کسی خاص سٹرنگ میں کسی خاص کردار تک رسائی حاصل کرنا چاہتے ہیں تو آپ فنکشن اسٹرنگ__امین کوار (اس فہرست) کے ذریعہ اس تک رسائی حاصل کرسکتے ہیں۔
  3. چونکہ ایک سرنی ڈیٹا ٹائپ نہیں ہے اسی طرح ایک کردار بھی ڈیٹا ٹائپ نہیں ہوتا ہے۔ دوسری طرف ، اسٹرنگ کلاس ایکٹ ہونے کی حیثیت سے ایک حوالہ کی قسم ہے ، لہذا یہ کہا جاسکتا ہے کہ سٹرنگ ڈیٹا کی قسم ہے۔
  4. آپ کسی بھی آپریٹر کو کریکٹر ارے پر لاگو نہیں کرسکتے ہیں ، جبکہ ، آپ اسٹرنگ پر آپریٹرز کو لاگو کرسکتے ہیں۔
  5. سرنی کردار کے سرے ہونے کی ایک مقررہ لمبائی ہوتی ہے اور اس کی حدود آسانی سے ختم ہوجاتی ہیں۔ جہاں اسٹرنگ کی کوئی حدود نہیں ہوتی۔
  6. صف عناصر ایک ماب .ہ میموری جگہ پر محفوظ ہوتے ہیں لہذا اسٹرنگ متغیر سے بھی زیادہ تیزی سے رسائی حاصل کی جاسکتی ہے۔

نتیجہ:

کریکٹر صف پر کام کرنے سے عدم استحکام نے معیاری اسٹرنگ کلاس کی ترقی کو بڑھا دیا۔