C فنکشن سے سٹرنگ واپس کرنا

C Fnkshn S S Rng Waps Krna



اے تار حروف کی ایک ترتیب ہے جو یا تو ایک کریکٹر، یا ایک سے زیادہ حروف پر مشتمل ہے اور کمپیوٹر پروگرامنگ میں ڈیٹا کا ایک اہم ڈھانچہ ہے۔ کے ساتھ کام کرتے وقت تار C میں، پر کچھ آپریشن کرنے کی ضرورت ہے۔ تار ڈیٹا کی قسم جیسے شروع کرنا تار , مواد تفویض کرنا, concatenating the تار ، موازنہ کرنا تار ، اور واپس کرنا تار .

یہ مضمون ایسے ہی ایک آپریشن پر توجہ مرکوز کرتا ہے۔ تار ڈیٹا ڈھانچہ، جو واپس آ رہا ہے a تار سی فنکشن سے۔







C فنکشن سے سٹرنگ واپس کرنا

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



بہتر تفہیم کے لیے آپ ذیل میں دی گئی مثال کو دیکھ سکتے ہیں۔



# شامل کریں

const char * میرا نام ( ) {
واپسی 'جان' ;
}

اہم int ( باطل ) {
printf ( '%s' ، میرا نام ( ) ) ;
}





مندرجہ بالا کوڈ میں، ویری ایبل کا اعلان کرنے کے بجائے جیسا کہ ہم عام طور پر کرتے ہیں، ہم نے اس کے ساتھ ایک پوائنٹر استعمال کیا تاکہ جب ہم اس سٹرنگ کو واپس کریں تو کوئی غلطی نہ ہو۔

آؤٹ پٹ




A C فنکشن a کو واپس نہیں کر سکتا تار جو کہ ایک مقامی متغیر کے طور پر بیان کیا گیا ہے کیونکہ متغیر کو فوری طور پر ہٹا دیا جائے گا (جاری کیا جائے گا) جب فنکشن چلنا ختم ہو جائے گا، اسے دستیاب نہیں ہے اور ذیل میں ایک انتباہ کو متحرک کرے گا:

# شامل کریں

const char myName ( ) {
چار نام = 'جان' ;
واپسی نام
}

اہم int ( باطل ) {
printf ( '%s' ، میرا نام ( ) ) ;
}

اس کوڈ میں، a انتباہ اسٹرنگ کو واپس کرنے کے بعد متحرک کیا جاتا ہے۔ بغیر کوئی اشارہ

آؤٹ پٹ


لہذا، آپ کوڈ کو درج ذیل طریقے سے لکھ سکتے ہیں:

# شامل کریں

const char * میرا نام ( ) {
چار * نام = 'جان' ;
واپسی نام
}
اہم int ( باطل ) {
printf ( '%s' ، میرا نام ( ) ) ;
}

آؤٹ پٹ


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

نتیجہ

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