C++ میں سٹرنگ ریورس

C My S Rng Rywrs



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

C++ پروگرامنگ میں سٹرنگ کو ریورس کرنے کی تکنیک

کوڈ کی وضاحتوں پر منحصر ہے جو ہم تیار کر رہے ہیں، C++ پروگرامنگ میں سٹرنگ ریورسل کو لاگو کرنے کے لیے کئی تکنیکیں موجود ہیں۔ یہ تکنیکیں ہیں:

  • 'ریورس ()' طریقہ استعمال کرنا
  • 'strrev()' طریقہ استعمال کرنا
  • 'for' لوپ کا استعمال
  • 'جبکہ' لوپ کا استعمال
  • کنسٹرکٹر کا استعمال

مثال 1:

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







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



پھر، ہم 'سٹرنگ' ڈیٹا کی قسم رکھتے ہیں اور کچھ سٹرنگ ڈیٹا کے ساتھ یہاں 'اوریجنل سٹر' کو شروع کرتے ہیں۔ پھر، ہم اس تار کو پرنٹ کرتے ہیں. اس کے بعد، ہم 'ریورس()' طریقہ استعمال کرتے ہیں جو سٹرنگ کو ریورس کرنے میں مدد کرتا ہے۔ اس 'ریورس ()' طریقہ میں، ہم 'شروع()' اور 'end()' اور 'originalStr' متغیر کے ساتھ شامل کرتے ہیں۔ اب، ہم اس ریورسڈ سٹرنگ کو بھی پرنٹ کرتے ہیں جو ہمیں 'reverse()' طریقہ کو لاگو کرنے کے بعد ملتا ہے۔



کوڈ 1:





#include
# شامل کریں
#include
استعمال کرتے ہوئے نام کی جگہ std ;
int مرکزی ( )
{
string originalStr = 'C++ پروگرامنگ میں اسٹرنگ ریورس' ;
cout << 'اصل تار!' << endl ;
cout << originalStr << endl << endl ;
معکوس ( originalStr. شروع ( ) , originalStr. اختتام ( ) ) ;
cout << 'الٹی ​​ہوئی تار!' << endl ;
cout << originalStr ;
واپسی 0 ;
}

آؤٹ پٹ:
ہمارے کوڈ میں 'ریورس()' طریقہ کو لاگو کرنے کے بعد ہمیں جو ریورسڈ سٹرنگ ملتی ہے وہ اب اصل سٹرنگ کے ساتھ پیش کی گئی ہے۔



مثال 2:

ہم پہلے ہیڈر فائلیں شامل کرتے ہیں اور پھر 'نیم اسپیس std' لگاتے ہیں۔ پھر، 'main()' طریقہ میں، ہم 'char' ڈیٹا ٹائپ کو 'Org_str' متغیر نام کے ساتھ رکھ کر کریکٹر اری کو شروع کرتے ہیں اور یہاں اس سٹرنگ کو ٹائپ کرتے ہیں جسے ہم ریورس کرنا چاہتے ہیں۔ پھر، ہم اس 'Org_str' کو 'cout' کی مدد سے رینڈر کرتے ہیں۔

اس کے نیچے، ہم سٹرنگ کو ریورس کرنے کے لیے 'strrev()' طریقہ استعمال کرتے ہیں اور 'Org_str' کو اس فنکشن میں پیرامیٹر کے طور پر پاس کرتے ہیں۔ اب، سٹرنگ یہاں الٹ ہے۔ اس کے بعد، ہم 'cout' کی مدد سے الٹ سٹرنگ بھی رینڈر کرتے ہیں۔

کوڈ 2:

# شامل کریں
#include
استعمال کرتے ہوئے نام کی جگہ std ;
int مرکزی ( )
{
چار org_str [ ] = 'سٹرنگ ریورس پروگرام' ;
cout << org_str << endl << endl ;
strrev ( org_str ) ;
cout << 'الٹ سٹرنگ' << endl ;
cout << org_str ;
واپسی 0 ;
}

آؤٹ پٹ:
یہاں، اصل اور الٹ سٹرنگز جو ہم نے اپنے کوڈ میں 'strrev()' طریقہ استعمال کرنے سے حاصل کی ہیں، پیش کیے گئے ہیں۔

مثال 3:

اس صورت میں، 'نیم اسپیس std' کو شامل کرنے سے پہلے ہیڈر فائلیں شامل کی جاتی ہیں۔ اس کے بعد، 'main()' کو طلب کیا جاتا ہے اور سٹرنگ متغیر کو 'myOrgStr' نام کے ساتھ شامل کیا جاتا ہے اور سٹرنگ ڈیٹا کے ساتھ شروع کیا جاتا ہے۔

اس کے بعد، ہم 'int' متغیر 'a' کا بھی اعلان کرتے ہیں اور 'cout' کا استعمال کرتے ہوئے 'myOrgStr' سٹرنگ رینڈر کرتے ہیں۔ اس کے نیچے، ہم 'for' لوپ کا استعمال کرتے ہیں جہاں ہم 'a' متغیر کو 'myOrgStr.length() – 1' کے ساتھ شروع کرتے ہیں اور پھر ایک شرط رکھتے ہیں جو کہ 'a >= 0' ہے اور اسے 'a' کی قدر میں کم کرتے ہیں۔ ' یہ ہماری سٹرنگ کو ریورس کر دیتا ہے اور اسے 'myOrgStr[a]' میں اسٹور کرتا ہے اور اسے ظاہر بھی کرتا ہے جب ہم 'myOrgStr[a]' کو 'cout' کے اندر رکھتے ہیں۔

کوڈ 3:

# شامل کریں
#include
استعمال کرتے ہوئے نام کی جگہ std ;
int مرکزی ( )
{
سٹرنگ myOrgStr = 'ہیلو ورلڈ!' ;
int a ;
cout << myOrgStr << endl << endl ;
cout << 'الٹ سٹرنگ' <= 0 ; a -- )
{
cout << myOrgStr [ a ] ;
}
واپسی 0 ;
}

آؤٹ پٹ:
یہ اصل اور الٹ دونوں تاروں کو پیش کرتا ہے جو ہمیں اپنے کوڈ کے ذریعے 'for' لوپ طریقہ استعمال کرتے ہوئے حاصل کرتے ہیں۔

مثال 4:

یہاں، ہم 'bits/stdc++.h' ہیڈر فائل درآمد کرتے ہیں لہذا ہمیں دوسری ہیڈر فائلوں کو درآمد کرنے کی ضرورت نہیں ہے کیونکہ اس ہیڈر فائل میں فنکشن کی تمام تعریفیں شامل ہیں۔ پھر، ہم 'namespace std' ٹائپ کرتے ہیں۔ یہاں، ہم 'Rev()' کے نام سے ایک فنکشن بناتے ہیں جس میں ہم اس فنکشن کی دلیل کے طور پر 'string & myString' کو پاس کرتے ہیں۔ ہم سٹرنگ کو ریورس کرنے کے لیے یہاں یہ فنکشن بناتے ہیں۔

اس فنکشن میں، ہم 'int' ڈیٹا ٹائپ کا 'S_len' متغیر رکھتے ہیں اور اس کے ساتھ 'myString' رکھ کر اسے 'length()' فنکشن کے ساتھ شروع کرتے ہیں۔ پھر، ہمارے پاس ایک اور ویری ایبل ہے جو کہ 'int' ڈیٹا ٹائپ کا 'no' ہے اور اسے 'S_len-1' کے ساتھ شروع کریں۔

اس کے نیچے، ایک اور ویری ایبل شروع کیا گیا ہے جسے 'int' ڈیٹا ٹائپ کا 'a' نام دیا گیا ہے۔ یہاں، ہم 'while()' لوپ کا استعمال کرتے ہیں اور شرط کے طور پر 'a <= no' شامل کرتے ہیں۔ پھر، ہم 'swap()' طریقہ استعمال کرتے ہیں۔ یہ 'swap()' طریقہ سٹرنگ ڈیٹا کو تبدیل کرنے میں مدد کرتا ہے اور پھر 'no' کو 'no-1' کے ساتھ شروع کرتا ہے۔ ہم 'a' کو 'a+1' کے ساتھ بھی شروع کرتے ہیں۔

پھر ہم یہاں 'main()' کا استعمال کرتے ہیں جس میں ہم 'myString' متغیر کو سٹرنگ ڈیٹا کے ساتھ شروع کرتے ہیں اور اس سٹرنگ کو پرنٹ کرتے ہیں۔ اس کے بعد، ہم 'Rev()' فنکشن کو کہتے ہیں جو ہم نے اس کوڈ میں بنایا ہے اور اس فنکشن کے پیرامیٹر کے طور پر 'myString' ڈالتے ہیں جو سٹرنگ کو ریورس کرتا ہے اور پھر ریورسڈ سٹرنگ کو ظاہر کرتا ہے۔

کوڈ 4:

#include
استعمال کرتے ہوئے نام کی جگہ std ;
باطل Rev ( تار اور myString )
{
int S_len = myString. لمبائی ( ) ;
int نہیں = S_len - 1 ;
int a = 0 ;
جبکہ ( a <= نہیں ) {
تبادلہ ( myString [ a ] ,myString [ نہیں ] ) ;
نہیں = نہیں - 1 ;
a = a + 1 ;
}

}
int مرکزی ( )
{
string myString = 'مجھے پروگرامنگ پسند ہے' ;
cout << myString << endl ;
cout << ' \n معکوس سٹرنگ' << endl ;
Rev ( myString ) ;
cout << myString ;
واپسی 0 ;
}

آؤٹ پٹ:
یہاں، ہم اصل سٹرنگ اور ریورسڈ سٹرنگ دونوں کو پیش کرتے ہیں جو ہم نے اپنے کوڈ میں بنائے گئے فنکشن کے اندر 'while()' لوپ اور 'swap()' طریقہ کو استعمال کرکے حاصل کیا ہے۔

مثال 5:

ہم تمام فنکشن کی تعریفوں کے ساتھ 'bits/stdc++.h' ہیڈر فائل درآمد کرتے ہیں۔ لہذا، ہمیں کسی اور ہیڈر فائل کو درآمد کرنے کی ضرورت نہیں ہے۔ اگلا، ہم 'نیم اسپیس std' درج کرتے ہیں اور یہاں 'main()' کو کال کرتے ہیں۔ پھر، ہمارے پاس 'سٹرنگ' ڈیٹا کی قسم کا ایک متغیر 'ڈیٹا' ہے اور اسے اس سٹرنگ کے ساتھ شروع کریں جسے ہم ریورس کرنا چاہتے ہیں۔

ہم اس اصل سٹرنگ کو ریورس کرنے سے پہلے 'ڈیٹا' متغیر کو 'cout' میں رکھ کر رینڈر کرتے ہیں۔ اس کے نیچے، ہم ایک اور متغیر شروع کرتے ہیں جو کہ اسی 'سٹرنگ' ڈیٹا کی قسم کا 'revStr' ہے۔ اس کے بعد، ہم 'rbegin()' اور 'rend()' کا استعمال کرتے ہیں جو کہ الٹا تکرار کرنے والے ہیں جنہیں ہم یہاں سٹرنگ کو ریورس کرنے کے لیے شامل کرتے ہیں۔ ریورس شدہ سٹرنگ اب 'revStr' متغیر میں محفوظ ہو گئی ہے جو کہ یہاں الٹ سٹرنگ پرنٹ کرنے کے لیے 'cout' میں رکھی گئی ہے۔

کوڈ 5:

#شامل
استعمال کرتے ہوئے نام کی جگہ std ;
int مرکزی ( )
{
سٹرنگ ڈیٹا = 'C++ بہترین پروگرامنگ زبان ہے' ;
cout << ڈیٹا << endl << endl ;
string revStr = تار ( ڈیٹا شروع کریں ( ) ، ڈیٹا۔ بناتا ہے ( ) ) ;

cout << revStr << endl ;
واپسی 0 ;
}

آؤٹ پٹ:
ہم نے کوڈ میں جو سٹرنگ شامل کی ہے وہ پہلے یہاں پیش کی گئی ہے۔ اس کے بعد، معکوس سٹرنگ جو ہم نے ریورس ایٹیریٹرز کو استعمال کرکے حاصل کی ہے وہ درج ذیل میں ظاہر ہوتا ہے:

نتیجہ

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