C++ میں strncpy() فنکشن کیا ہے؟
strncpy() فنکشن ایک بلٹ ان C++ فنکشن ہے جو ایک سٹرنگ سے دوسرے میں حروف کی ایک مقررہ مقدار کاپی کرنے کے لیے استعمال ہوتا ہے۔ فنکشن کو تین پیرامیٹرز کی ضرورت ہے: منزل کی تار جو حروف کو رکھے گی، سورس سٹرنگ جو حروف فراہم کرے گی، اور کاپی کرنے کے لیے حروف کی گنتی۔ اگر سورس سٹرنگ حروف کی متعین تعداد سے کم ہے، تو منزل کی تار کو بقیہ طوالت پر خالی حروف کے ساتھ پیڈ کیا جائے گا۔
strncpy() فنکشن کا پروٹو ٹائپ ذیل میں دیا گیا ہے۔
چار * strncpy ( چار * ہاتھ const چار * src سائز_ٹی شمار ) ;
C++ strncpy() کے پیرامیٹرز کیا ہیں؟
کے تمام پیرامیٹرز strncpy() فنکشن ذیل میں بیان کیا گیا ہے.
- ہاتھ: منزل کی صف کا ایک پوائنٹر جس میں مواد رہا ہے۔
- src: ماخذ سرنی کا ایک پوائنٹر جس سے مواد ہے۔
- شمار: حروف کی سب سے زیادہ تعداد جو ماخذ سے منزل تک کاپی کی جا سکتی ہے۔
strncpy() فنکشن C++ میں کیسے کام کرتا ہے۔
strncpy() فنکشن تین دلائل کو قبول کرتا ہے: dest, src, اور شمار . یہ چیک کرتا ہے کہ آیا src سٹرنگ کالعدم ہے، اور اگر ہاں، تو یہ حروف کی مخصوص تعداد کو نقل کرتا ہے src کو تار شروع تار اگر گنتی کی لمبائی سے کم ہے۔ src string، پہلے گنتی کے حروف کو منتقل کر دیا گیا ہے۔ شروع string اور کالعدم نہیں ہیں۔ اگر گنتی کی لمبائی سے زیادہ ہے۔ src , سے تمام حروف src پر نقل کیے جاتے ہیں۔ شروع ، اور اضافی ختم کرنے والے null حروف کو شامل کیا گیا ہے جب تک کہ تمام گنتی کے حروف لکھے نہ جائیں۔
دی گئی مثال C++ کے کام کو واضح کرتی ہے۔ strncpy() فنکشن
# شامل کریں
#include
استعمال کرتے ہوئے نام کی جگہ std ;
int مرکزی ( )
{
چار src_str [ ] = 'میں strncpy کے لیے ایک کوڈ لکھ رہا ہوں' ;
چار dest_str [ 60 ] ;
strncpy ( dest_str,src_str, strlen ( src_str ) ) ;
cout << dest_str << ' \n ' ;
واپسی 0 ;
}
اس پروگرام میں، ہم نے استعمال کیا
دی آؤٹ پٹ پروگرام کے ذیل میں دکھایا جا سکتا ہے.
strncpy() کو C++ میں استعمال کرنے میں کیا مسائل ہیں؟
- اگر منزل کی صف میں کوئی null کریکٹر نہیں ہے یا سٹرنگ کو ختم نہیں کیا گیا ہے، تو ہمارے پروگرام یا کوڈ کو جلد یا بدیر مسائل کا سامنا کرنا پڑ سکتا ہے۔ C++ میں ایک غیر منسوخ شدہ سٹرنگ خطرناک کوڈ بن گیا ہے جو پروگرام کے عمل کے دوران کسی بھی وقت ٹوٹ سکتا ہے۔ اس کے نتیجے میں پروگرام میں سیگمنٹیشن کی غلطی ہو سکتی ہے۔ اس کے نتیجے میں، strncpy() اس بات کو یقینی نہیں بناتا ہے کہ منزل کی تار ہمیشہ کالعدم ہوتی ہے، جس سے یہ اس پروگرام کے لیے خطرناک کوڈ بن جاتا ہے جسے ہم لکھ رہے ہیں۔
- یہ فنکشن اوور فلو کو چیک کرنے میں ناکام رہتا ہے، لہذا اگر ہم سورس سٹرنگ کو کسی ایسی منزل پر کاپی کرنے کی کوشش کرتے ہیں جو ماخذ سے چھوٹی ہے، تو ہمیں ایک غلطی اور غیر متعینہ رویہ ملتا ہے۔
نتیجہ
ڈیٹا کو ایک تار سے دوسرے میں کاپی کرنے کے لیے، ہم استعمال کرتے ہیں۔ strncpy() C++ میں جو ایک بلٹ ان فنکشن ہے۔