C++ سٹرنگ ایک سبسٹرنگ پر مشتمل ہے۔

C S Rng Ayk Sbs Rng Pr Mshtml



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

مثال 1:

'iostream' اور 'string' ہیڈر فائلز ہیں جو یہاں شامل ہیں کیونکہ ہمیں سٹرنگز کے ساتھ کام کرنا ہے اور ڈیٹا کو ان پٹ یا آؤٹ پٹ کرنے کی بھی ضرورت ہے۔ لہذا، ہمیں ان ہیڈر فائلوں کو یہاں شامل کرنا چاہیے۔ اس کے بعد، ہم 'using' کلیدی لفظ کی مدد سے 'namespace std' کو شامل کرتے ہیں۔ لہذا، ہمیں اپنے کوڈ میں اس 'std' کو تمام فنکشنز کے ساتھ الگ سے ڈالنے کی ضرورت نہیں ہے۔ پھر، 'main()' فنکشن کو یہاں طلب کیا جاتا ہے۔







اب، ہم 'str_1' سٹرنگ کا اعلان کرتے ہیں اور اس متغیر کو کچھ سٹرنگ ڈیٹا تفویض کرتے ہیں۔ اس کے بعد، ہم 'str_2' نامی ایک اور متغیر کو بھی شروع کرتے ہیں جس کا نام 'str_2' ڈیٹا کی قسم ہے اور اس 'str_2' متغیر کو 'like' تفویض کرتے ہیں۔ اس کے نیچے، ہم صحیح یا غلط نتائج دینے کے لیے 'bool' کلیدی لفظ استعمال کرتے ہیں۔ ہم اس 'بول' ڈیٹا ٹائپ کے ساتھ 'stringHasStr' کو شروع کرتے ہیں اور 'find()' فنکشن کا استعمال کرتے ہیں۔ یہ 'سٹرنگ پر مشتمل سبسٹرنگ' کو تلاش کرتا ہے۔ 'str_1' مکمل سٹرنگ ہے اور 'str_2' سب اسٹرنگ ہے۔



یہاں، ہم 'npos' کلیدی لفظ بھی شامل کرتے ہیں جو یہ ظاہر کرنے کے لیے استعمال ہوتا ہے کہ اس سٹرنگ میں کوئی مماثلت نہیں ہے۔ یہ چیک کرتا ہے کہ آیا سٹرنگ میں سب اسٹرنگ ہے اور نتیجہ اس 'stringHasStr' bool متغیر میں اسٹور کرتا ہے۔



پھر، ہم 'if' حالت کی طرف آگے بڑھتے ہیں اور اس 'stringHasStr' متغیر کو اس 'if' حالت میں منتقل کرتے ہیں۔ اگر اس bool متغیر میں ذخیرہ شدہ نتیجہ 'true' ہے، تو اس 'if' حالت کے بعد کا بیان استعمال کیا جاتا ہے جہاں ہم 'cout' کو استعمال کرتے ہیں اور یہاں ملنے والی سٹرنگ کو ظاہر کرتے ہیں۔ لیکن اگر 'غلط' نتیجہ اس bool متغیر میں ذخیرہ کیا جاتا ہے، تو دوسرا حصہ کام کرتا ہے اور ظاہر کرتا ہے کہ سٹرنگ یہاں نہیں ملی۔





کوڈ 1:

# شامل کریں
#include

نام کی جگہ کا استعمال کرتے ہوئے std؛
اہم int ( )
{
string str_1 = 'مجھے C++ پروگرامنگ زبان پسند ہے' ;
string str_2 = 'جیسے' ;
bool stringHasStr = str_1.find ( str_2 ) ! = سٹرنگ::npos؛
اگر ( stringHasStr ) {
cout << 'ہمیں یہاں تار ملتا ہے جو ہے' << str_2 << endl
}
اور {
cout << 'سٹرنگ نہیں ملی' << endl
}
واپسی 0 ;
}



آؤٹ پٹ:

یہ دیا گیا آؤٹ پٹ رینڈر کرتا ہے کہ سٹرنگ میں سب اسٹرنگ ہے اور اسے یہاں دکھاتا ہے۔ ہم اسے 'find()' فنکشن کا استعمال کرکے چیک کرتے ہیں۔

مثال 2:

ہم یہاں تین ہیڈر فائلیں شامل کرتے ہیں جو 'iostream'، 'string'، اور 'cstring' ہیں۔ پھر، 'نیم اسپیس std' رکھنے کے بعد 'main()' کو پکاریں۔ 'new_str' اسٹرنگ کا اب اعلان کیا گیا ہے اور کچھ سٹرنگ ڈیٹا تفویض کیا گیا ہے۔

اس کے بعد، ہم 'سٹرنگ' ڈیٹا ٹائپ کا دوسرا متغیر شروع کرتے ہیں جسے 'sub_str' کہتے ہیں اور اسے 'بہت' ویلیو دیتے ہیں۔ پھر، ہم 'const char*' رکھتے ہیں۔ لہذا، میموری میں دوسرے مقام کی طرف اشارہ کرنے کے لیے پوائنٹر کی قدر کو تبدیل کرنا ناممکن ہے۔ ہم یہاں اس 'const char*' پوائنٹر کے طور پر 'FindingStr' متغیر کا اعلان کرتے ہیں۔ ہم اسے 'strstr()' طریقہ سے شروع کرتے ہیں اور دونوں سٹرنگز کو 'c_str()' فنکشن کے ساتھ پاس کرتے ہیں جو ایک سٹرنگ کو کریکٹر اری میں تبدیل کرتا ہے جو کہ null ویلیو کے ساتھ ختم ہوتا ہے۔ یہ 'strstr()' طریقہ یہ جانچنے میں مدد کرتا ہے کہ آیا 'new_str' سٹرنگ میں 'sub_str' سبسٹرنگ ہے یا نہیں۔ پھر، ہمارے پاس 'if' ہے جس میں ہم 'FindingStr' شامل کرتے ہیں۔ اگر اسے اصل میں ذیلی سٹرنگ مل جاتی ہے، تو 'if' کے بعد کا بیان عمل میں آتا ہے جہاں ہم 'cout' کو استعمال کرتے ہیں۔ اگر سبسٹرنگ نہیں ملتی ہے، تو یہ براہ راست 'دوسرے' حصے کی طرف بڑھتا ہے اور نتیجہ پرنٹ کرتا ہے جو 'دوسرے' حصے کے بعد رکھا جاتا ہے۔

کوڈ 2:

# شامل کریں
#include
#include

نام کی جگہ کا استعمال کرتے ہوئے std؛
اہم int ( )
{
string new_str = 'باہر بارش ہو رہی ہے اور موسم بہت خوشگوار ہے۔' ;
string sub_str = 'بہت' ;
const char * FindingStr = strstr ( new_str.c_str ( ) , sub_str.c_str ( ) ) ;
اگر ( FindingStr ) {
cout << 'ہمیں سٹرنگ ملتی ہے اور سٹرنگ یہ ہے:' << sub_str << endl
}
اور {
cout << 'سٹرنگ نہیں ملی' << endl
}
واپسی 0 ;
}

آؤٹ پٹ:

ہم محسوس کر سکتے ہیں کہ دی گئی اسٹرنگ میں ذیلی سٹرنگ موجود ہے کیونکہ یہ وہ بیان دکھاتا ہے جسے ہم نے 'if' کے بعد شامل کیا ہے اور یہاں سبسٹرنگ پرنٹ کرتا ہے۔ ہم اسے 'strstr()' فنکشن کا استعمال کرکے چیک کرتے ہیں۔

مثال 3:

ہم یہاں دو سٹرنگ متغیرات شروع کرتے ہیں: 'myNewStr' اور 'mySubStr'۔ پھر، ہم کچھ سٹرنگ ڈیٹا تفویض کرتے ہیں اور دو عددی متغیرات کا اعلان کرتے ہیں: 'posOfStr' اور 'indexOfStr'۔

اس کے نیچے، ہم 'while()' لوپ کا استعمال کرتے ہیں اور اس 'while()' لوپ کے اندر موجود 'indexOfStr' متغیر کو 'find()' فنکشن متغیر کو تفویض کرتے ہیں۔ ہم اس 'find()' فنکشن میں دو متغیرات پاس کرتے ہیں جو کہ 'mySubStr' اور 'posOfStr' ہیں۔ پھر، ہم 'npos' کلیدی لفظ لگاتے ہیں جو یہ چیک کرتا ہے کہ 'find' فنکشن کا نتیجہ 'npos' کے برابر نہیں ہے۔ اس کے بعد، ہم 'cout' کا استعمال کرتے ہیں جو انڈیکس ویلیو کو ایک سے بڑھاتا ہے اور اسے 'posOfStr' متغیر میں محفوظ کرتا ہے۔

کوڈ 3:

# شامل کریں
#include

نام کی جگہ کا استعمال کرتے ہوئے std؛
اہم int ( ) {
string myNewStr = 'ہم یہاں تار تلاش کر رہے ہیں' ;
string mySubStr = 'سٹرنگ' ;
int posOfStr = 0 ;
int indexOfStr;
جبکہ ( ( indexOfStr = myNewStr.find ( mySubStr، posOfStr ) ) ! = سٹرنگ::npos ) {
cout << 'سبسٹرنگ ہے' << '' << mySubStr << '' << 'انڈیکس نمبر پر ملا:' << indexOfStr << endl
posOfStr = indexOfStr + 1 ;
}
واپسی 0 ;
}

آؤٹ پٹ:

یہاں، یہ ظاہر کرتا ہے کہ دی گئی اسٹرنگ میں سب اسٹرنگ ہے اور اس سٹرنگ کا انڈیکس نمبر '19' ہے جو اس نتیجے میں بھی ظاہر ہوتا ہے۔

مثال 4:

اس کوڈ میں، ہم 'bits/stdc++.h' ہیڈر فائل شامل کرتے ہیں۔ اب، ہمیں دیگر ہیڈر فائلوں کو شامل کرنے کی ضرورت نہیں ہے کیونکہ ان میں تمام مطلوبہ لائبریریاں ہیں۔ 'main()' کو استعمال کرنے کے بعد، ہم 'string' ڈیٹا کی قسم کے 'org_str' اور 'sub_str' متغیرات کو شروع کرتے ہیں۔ پھر، ہم 'if' حالت شامل کرتے ہیں جس میں ہم 'strstr()' فنکشن استعمال کرتے ہیں۔ یہ فنکشن یہ دیکھنے کے لیے تلاش کرتا ہے کہ آیا دی گئی سٹرنگ میں مطلوبہ سبسٹرنگ موجود ہے۔ اس کے بعد، ہم پرنٹ کرنے کے لیے ایک 'cout' اسٹیٹمنٹ شامل کرتے ہیں کہ ذیلی سٹرنگ یہاں پائی جاتی ہے۔ اس کے بعد، ہم 'دوسرے' حصے کو بھی ڈالتے ہیں جو صرف اس صورت میں عمل میں آتا ہے جب 'اگر' شرط مطمئن نہیں ہوتی ہے یا اسٹرنگ میں سبسٹرنگ نہیں ملتی ہے۔

اس کے بعد، ہم 'sub_str2' متغیر کا اعلان کرتے ہیں اور یہاں ایک سٹرنگ ڈیٹا تفویض کرتے ہیں۔ پھر 'if' حالت داخل کی جاتی ہے، اور 'strstr()' فنکشن استعمال ہوتا ہے۔ یہ طریقہ تلاش کرتا ہے کہ آیا فراہم کردہ اسٹرنگ میں مطلوبہ ذیلی اسٹرنگ شامل ہے یا نہیں۔ نتیجہ پھر یہاں 'cout' کمانڈ کا استعمال کرکے پرنٹ کیا جاتا ہے۔ ہم ایک 'اور' سیکشن بھی شامل کرتے ہیں جو صرف اس صورت میں چلایا جاتا ہے جب 'اگر' شرط پوری نہیں ہوتی ہے یا اگر ذیلی اسٹرنگ سٹرنگ میں واقع نہیں ہوسکتی ہے۔

کوڈ 4:

#include
نام کی جگہ کا استعمال کرتے ہوئے std؛
اہم int ( ) {
string org_str = 'C++ پروگرامنگ لینگویج' ;
string sub_str = 'پروگرام' ;
اگر ( strstr ( org_str.c_str ( ) ,sub_str.c_str ( ) ) )
{
cout << 'یہاں سبسٹرنگ ہے' << '' << sub_str << '' << 'میں موجود ہے' << org_str << endl
}
اور {
cout << 'سبسٹرنگ سٹرنگ میں موجود نہیں ہے۔' << endl
}
string sub_str2 = 'جاوا' ;

اگر ( strstr ( org_str.c_str ( ) ,sub_str2.c_str ( ) ) )
{
cout << 'یہاں سبسٹرنگ ہے' << '' << sub_str2 << '' << 'میں موجود ہے' << org_str << endl
}
اور {
cout << 'اس سٹرنگ میں سبسٹرنگ موجود نہیں ہے۔' << endl
}
واپسی 0 ;
}

آؤٹ پٹ:

پہلے 'strstr()' فنکشن کا نتیجہ ظاہر کرتا ہے کہ سٹرنگ میں سب سٹرنگ ہے، لیکن دوسرے 'strstr()' فنکشن کا نتیجہ ظاہر کرتا ہے کہ سبسٹرنگ سٹرنگ میں موجود نہیں ہے۔

نتیجہ

اس گائیڈ میں 'سٹرنگ میں سبسٹرنگ شامل ہے' کے تصور کی اچھی طرح جانچ کی گئی ہے۔ ہم نے دو طریقے تلاش کیے جو یہ تلاش کرنے میں مدد کرتے ہیں کہ آیا 'سٹرنگ میں سبسٹرنگ ہے'۔ ہم نے 'find()' کے ساتھ ساتھ 'strstr()' فنکشنز کی وضاحت کی ہے جو C++ اس گائیڈ میں اس کام کو کرنے کے لیے فراہم کرتا ہے۔ ہم منفرد مثالوں کے ساتھ ظاہر کرتے ہیں جس میں ہم نے سیکھا کہ ان فنکشنز کو کس طرح استعمال کرنا ہے یہ چیک کرنے کے لیے کہ آیا اس میں 'سٹرنگ سبسٹرنگ ہے'۔