C ++ میں سٹرنگ کو کیسے تقسیم کیا جائے۔

How Split String C



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

شرط

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







گیٹ لائن () فنکشن کا استعمال کرتے ہوئے اسٹرنگ کو تقسیم کریں۔

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



نحو:



اسٹریم&گیٹ لائن(اسٹریم&ہے ، سٹرنگ&str ،چارڈیلم)؛

یہاں ، پہلا پیرامیٹر ، اسٹریم ، وہ چیز ہے جہاں سے حروف نکالے جائیں گے۔ دوسرا پیرامیٹر ایک سٹرنگ متغیر ہے جو نکالی گئی قیمت کو محفوظ کرے گا۔ تیسرا پیرامیٹر ڈیلیمیٹر سیٹ کرنے کے لیے استعمال ہوتا ہے جو کہ تار نکالنے کے لیے استعمال کرے گا۔





مندرجہ ذیل کوڈ کے ساتھ C ++ فائل بنائیں تاکہ اسپیس ڈیلیمیٹر کی بنیاد پر سٹرنگ کو تقسیم کیا جاسکے۔ گیٹ لائن () فنکشن متعدد الفاظ کی سٹرنگ ویلیو ایک متغیر میں تفویض کی گئی ہے ، اور جگہ کو بطور جداکار استعمال کیا گیا ہے۔ نکالے گئے الفاظ کو ذخیرہ کرنے کے لیے ایک ویکٹر متغیر کا اعلان کیا گیا ہے۔ اگلا ، 'فار' لوپ نے ویکٹر صف سے ہر قدر کو پرنٹ کرنے کے لئے استعمال کیا ہے۔

// ضروری لائبریریاں شامل کریں۔
#شامل کریں
#شامل کریں
#شامل کریں
#شامل کریں

intمرکزی()
{
// سٹرنگ ڈیٹا کی وضاحت کریں جو تقسیم ہو جائے گا۔
گھنٹے::تارstrData= 'C ++ پروگرامنگ سیکھیں'؛
// کنٹینٹ ڈیٹا کی وضاحت کریں جو ڈیلیمیٹر کے طور پر کام کیا جائے گا۔
const چارجداکار= ''؛
// ڈور کے متحرک صف متغیر کی وضاحت کریں۔
گھنٹے::ویکٹرآؤٹ پٹ ایرے؛
// تار سے ایک ندی بنائیں۔
گھنٹے::سٹرنگ اسٹریمسٹریم ڈیٹا(strData)؛
/ *
سٹرنگ متغیر کا اعلان کریں جو استعمال کیا جائے گا۔
تقسیم کے بعد ڈیٹا کو محفوظ کرنا۔
* /

گھنٹے::تارگھنٹے؛
/ *
لوپ تقسیم شدہ اعداد و شمار کا اعادہ کرے گا اور۔
صف میں ڈیٹا داخل کریں۔
* /

جبکہ (گھنٹے::گیٹ لائن(سٹریم ڈیٹا ، ویل ، جداکار۔)) {
آؤٹ پٹ ایرےپیچھے دھکیلو(گھنٹے)؛
}
// تقسیم شدہ ڈیٹا پرنٹ کریں۔
گھنٹے::لاگت << 'اصل تار یہ ہے:' <<strData<<گھنٹے::endl؛
// صف پڑھیں اور تقسیم شدہ ڈیٹا پرنٹ کریں۔
گھنٹے::لاگت << 'nخلا کی بنیاد پر سٹرنگ کو تقسیم کرنے کے بعد کی اقدار: ' <<گھنٹے::endl؛
کے لیے (آٹو &گھنٹے:آؤٹ پٹ ایرے) {
گھنٹے::لاگت <<گھنٹے<<گھنٹے::endl؛
}
واپسی ؛
}

آؤٹ پٹ:



مندرجہ ذیل آؤٹ پٹ اوپر کوڈ پر عمل کرنے کے بعد ظاہر ہوگا۔

strtok () فنکشن کا استعمال کرتے ہوئے سٹرنگ کو تقسیم کریں۔

strtok () فنکشن کو ڈریمیٹر کی بنیاد پر سٹرنگ کے حصے کو ٹوکنائز کرکے سٹرنگ کو تقسیم کرنے کے لیے استعمال کیا جا سکتا ہے۔ اگر یہ موجود ہے تو یہ اگلے ٹوکن پر ایک پوائنٹر لوٹاتا ہے بصورت دیگر ، یہ NULL ویلیو لوٹاتا ہے۔ کی string.h اس فنکشن کو استعمال کرنے کے لیے ہیڈر فائل درکار ہے۔ ایک لوپ کو تار سے تمام تقسیم شدہ اقدار کو پڑھنے کی ضرورت ہوگی۔ پہلی دلیل اسٹرنگ ویلیو پر مشتمل ہے جسے پارس کیا جائے گا ، اور دوسری دلیل میں ڈیلیمیٹر شامل ہے جو ٹوکن بنانے کے لیے استعمال کیا جائے گا۔ اس فنکشن کی ترکیب ذیل میں دی گئی ہے۔

نحو:

چار * strtok ( چار *str ،const چار *حد بندی کرنے والے)؛

strtok () فنکشن کا استعمال کرکے سٹرنگ کو تقسیم کرنے کے لیے درج ذیل کوڈ کے ساتھ C ++ فائل بنائیں۔ حروف کی ایک صف کی وضاحت اس کوڈ میں کی گئی ہے جس میں بڑی آنت (':') جداکار ہے۔ اگلا ، strtok () فنکشن کو سٹرنگ ویلیو اور ڈیلیمیٹر کے ساتھ کہا جاتا ہے تاکہ پہلا ٹوکن تیار کیا جا سکے۔ ’’ جبکہ 'لوپ کی وضاحت دوسرے ٹوکن اور ٹوکن اقدار کو پیدا کرنے کے لیے کی گئی ہے جب تک کہ خالی قیمت مل جاتی ہے.

// ضروری لائبریریاں شامل کریں۔
#شامل کریں
#شامل کریں

intمرکزی()
{
// حروف کی ایک صف کا اعلان کریں۔
چارstrArray[] = محراب حسین: آئی ٹی پروفیشنل: [ای میل محفوظ]: +8801726783423 '؛
// ':' کی بنیاد پر پہلی ٹوکن ویلیو واپس کریں
چار *ٹوکن ویلیو= strtok(strArray ،':')؛
// کاؤنٹر متغیر کو شروع کریں۔
intکاؤنٹر= ؛
/ *
ٹوکن ویلیو پرنٹ کرنے کے لیے لوپ کی تکرار کریں۔
اور باقی سٹرنگ ڈیٹا حاصل کرنے کے لیے تقسیم کریں۔
اگلی ٹوکن ویلیو
* /

جبکہ (ٹوکن ویلیو!= خالی)
{
اگر(کاؤنٹر== )
پرنٹ ایف('نام:٪ sn'، ٹوکن ویلیو۔)؛
اور اگر(کاؤنٹر== )
پرنٹ ایف(پیشہ:٪ sn'، ٹوکن ویلیو۔)؛
اور اگر(کاؤنٹر== )
پرنٹ ایف(ای میل:٪ sn'، ٹوکن ویلیو۔)؛
اور
پرنٹ ایف(موبائل نمبر:٪ sn'، ٹوکن ویلیو۔)؛
ٹوکن ویلیو= strtok(خالی،':')؛
کاؤنٹر++۔؛
}
واپسی ؛
}

آؤٹ پٹ:

مندرجہ ذیل آؤٹ پٹ اوپر کوڈ پر عمل کرنے کے بعد ظاہر ہوگا۔

find () اور erase () افعال کا استعمال کرتے ہوئے سٹرنگ کو تقسیم کریں۔

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

// ضروری لائبریریاں شامل کریں۔
#شامل کریں
#شامل کریں
#شامل کریں

intمرکزی(){
// تار کی وضاحت کریں۔
گھنٹے::تارstringData= 'بنگلہ دیش اور جاپان اور جرمنی اور برازیل'؛
// جداکار کی وضاحت کریں۔
گھنٹے::تارجداکار= 'اور'؛
// ویکٹر متغیر کا اعلان کریں۔
گھنٹے::ویکٹرملک{}؛
// عدد متغیر کا اعلان کریں۔
intپوزیشن؛
// سٹرنگ متغیر کا اعلان کریں۔
گھنٹے::تارoutstr ، ٹوکن؛

/ *
substr () فنکشن کا استعمال کرتے ہوئے سٹرنگ کو تقسیم کریں۔
اور تقسیم شدہ لفظ کو ویکٹر میں شامل کرنا۔
* /

جبکہ ((پوزیشن=stringData.مل(جداکار)) !=گھنٹے::تار::npos) {
ٹوکن=stringData.ذیلی(، پوزیشن)؛
// تقسیم شدہ تار کے سامنے سے اضافی جگہ ہٹا دیں۔
ملک.پیچھے دھکیلو(ٹوکنمٹانا(، ٹوکن.پہلے_نہیں_ تلاش کریں۔('')))؛
stringData.مٹانا(، پوزیشن+جداکارلمبائی())؛
}
// آخری لفظ کو چھوڑ کر تمام تقسیم شدہ لفظ پرنٹ کریں۔
کے لیے (const آٹو &باہر:ملک) {
گھنٹے::لاگت <<باہر<<گھنٹے::endl؛
}
// آخری تقسیم شدہ لفظ پرنٹ کریں۔
گھنٹے::لاگت <<stringData.مٹانا(، سٹرنگ ڈیٹا۔پہلے_نہیں_ تلاش کریں۔('')) <<گھنٹے::endl؛
واپسی ؛
}

آؤٹ پٹ:

مندرجہ ذیل آؤٹ پٹ اوپر کوڈ پر عمل کرنے کے بعد ظاہر ہوگا۔

نتیجہ

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