কম্পিউটার

কেন আমরা C/C++ এ strncpy অনিরাপদ ধরে নিই?


ফাংশন strncpy() উৎস থেকে গন্তব্যে নির্দিষ্ট সংখ্যক অক্ষর কপি করতে ব্যবহৃত হয়।

নিচে strncpy()

এর সিনট্যাক্স
char *strncpy( char *destination, char *source, size_t n);

এখানে, গন্তব্য হল গন্তব্য অ্যারের নির্দেশক যেখানে সোর্স স্ট্রিং কপি করা হবে, সোর্স হল স্ট্রিং কপি করা হবে এবং n হল সোর্স স্ট্রিং থেকে কপি করার জন্য সর্বাধিক সংখ্যক অক্ষর৷

strncpy() ফাংশনটি অনিরাপদ কারণ যদি উৎস স্ট্রিং-এর প্রথম n অক্ষরগুলিতে NULL অক্ষরটি উপলব্ধ না হয় তবে গন্তব্য স্ট্রিংটি NULL সমাপ্ত হবে না৷

C++ এ strncpy() প্রদর্শন করে এমন একটি প্রোগ্রাম নিম্নরূপ দেওয়া হল।

উদাহরণ

#include <iostream>
#include <cstring>
using namespace std;
int main () {
   char source[20] = "This is a string";
   char dest[20];
   strncpy(dest, source, 4);
   cout << "The destination string is: " << dest;
   return 0;
}

আউটপুট

উপরের প্রোগ্রামটির আউটপুট নিম্নরূপ।

The destination string is: This

এখন আসুন উপরের প্রোগ্রামটি বুঝতে পারি।

উৎস স্ট্রিংটিতে "এটি একটি স্ট্রিং" তথ্য রয়েছে। তারপর strncpy() গন্তব্য স্ট্রিং-এ প্রথম চারটি অক্ষর কপি করতে ব্যবহৃত হয়। তারপর গন্তব্য স্ট্রিং বিষয়বস্তু মুদ্রিত হয়. কোড স্নিপেট যা এটি দেখায় তা নিম্নরূপ।

char source[20] = "This is a string";
char dest[20];
strncpy(dest, source, 4);
cout << "The destination string is: " << dest;

  1. C ভাষায় strncpy() ফাংশন কি?

  2. C/C++ এ একটি নাল-টার্মিনেটেড স্ট্রিং কি?

  3. একটি C/C++ স্ট্রিং একটি int কিনা তা কীভাবে পরীক্ষা করবেন?

  4. C/C++ এ একটি স্ট্রিং বিপরীত করুন