C প্রোগ্রামিংয়ে strcpy(X, Y)
ফাংশন — বিস্তারিত বিশ্লেষণ
C প্রোগ্রামিং ভাষায় স্ট্রিং (String) মানে হচ্ছে এক ধরনের ক্যারেক্টার অ্যারে বা অক্ষরের সারি, যা \0
(null character) দ্বারা শেষ হয়। আর এই স্ট্রিংগুলোকে একে অপরের মাঝে কপি করার জন্য C-তে একটি শক্তিশালী ফাংশন রয়েছে যার নাম হচ্ছে strcpy()
।
strcpy(X, Y); ফাংশন কী?
strcpy()
হল একটি স্ট্যান্ডার্ড লাইব্রেরি ফাংশন যা Y স্ট্রিং-এর কনটেন্টকে X-এ কপি করে। এটি string.h
হেডার ফাইলের অন্তর্গত।
ফাংশনের সিনট্যাক্স:
#include <string.h>
strcpy(destination, source);
- destination → যেটি স্ট্রিংটি রিসিভ করবে (X)
- source → যেটি থেকে কপি করা হবে (Y)
অর্থাৎ: strcpy(X, Y);
অর্থ: Y-এর মান X-এ কপি করো।
🧪 উদাহরণ:
#include <stdio.h>
#include <string.h>
int main() {
char X[20];
char Y[] = "Hello, World!";
strcpy(X, Y);
printf("X এর মান: %s\n", X);
return 0;
}
আউটপুট:
X এর মান: Hello, World!
গুরুত্বপূর্ণ বিষয়:
- X (destination) এর আকার যথেষ্ট বড় হতে হবে যেন Y-এর সব অক্ষর + null character (
\0
) ধারণ করতে পারে। - যদি X ছোট হয়, তাহলে buffer overflow হতে পারে যা অ্যাপ ক্র্যাশ বা সিকিউরিটি রিস্ক সৃষ্টি করতে পারে।
মেমোরি ভিউ (Visualization):
| Y | → | H | e | l | l | o | , | | W | o | r | l | d | ! | \0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|----|
| X | ← কপি হয়ে যায় →
strcpy() এর কার্যপ্রণালি (কোডের মাধ্যমে):
char* strcpy(char* dest, const char* src) {
char* ptr = dest;
while (*src != '\0') {
*ptr++ = *src++;
}
*ptr = '\0'; // null character যোগ করা
return dest;
}
বিকল্প: strncpy() — আরও নিরাপদ সংস্করণ
strncpy(X, Y, sizeof(X) - 1);
X[sizeof(X) - 1] = '\0'; // null যোগ করা নিশ্চিত করার জন্য
এটি buffer overflow প্রতিরোধে সহায়ক।
strcpy() ব্যবহার করার সময় সতর্কতা:
সমস্যা | সমাধান |
---|---|
Buffer overflow | strncpy() ব্যবহার করুন |
Source string null না হলে | প্রোগ্রাম ক্র্যাশ করতে পারে |
Destination ছোট হলে | অপ্রত্যাশিত রেজাল্ট |
বাস্তব জীবন ব্যবহার:
- ইউজারের নাম বা ইনপুট কপি করা
- ফাইলপাথ স্টোর করা
- লোকাল কপি তৈরি করে প্রসেস করা
উপসংহার
strcpy()
একটি অত্যন্ত গুরুত্বপূর্ণ এবং বহুল ব্যবহৃত C লাইব্রেরি ফাংশন। যদিও এটি ব্যবহারে কিছু সতর্কতা দরকার, তবুও সঠিকভাবে ব্যবহার করলে স্ট্রিং কপি করার জন্য এটি দ্রুত ও কার্যকর।
পরামর্শ: যদি নিরাপত্তা গুরুত্বপূর্ণ হয়, তাহলেstrncpy()
অথবাstrcpy_s()
(modern C) ব্যবহার করাই ভালো।
যদি এই ব্লগটি আপনার উপকারে আসে, নিচে কমেন্ট করুন এবং শেয়ার করতে ভুলবেন না।
No comments:
Post a Comment