প্রোগ্রামিং-এ স্ট্রিংকে ক্যারেক্টারসমূহের সমষ্টি হিসেবে সংজ্ঞায়িত করা হয়। একটি স্ট্রিং তৈরিতে কতগুলো ক্যারেক্টার ব্যবহৃত হয়েছে তা জানার জন্য C-তে দুটি পদ্ধতি রয়েছে: strlen() এবং sizeof()।
উপরোক্ত উভয় পদ্ধতিই টার্গেট অপারেন্ডের দৈর্ঘ্য বের করার জন্য ব্যবহৃত হয়, তবে তাদের আন্তরিক ইমপ্লিমেন্টেশনের ভিত্তিতে কিছু মূল পার্থক্য রয়েছে:
strlen() এবং sizeof() এর মধ্যে মূল পার্থক্যসমূহ
| ক্রমিক নং | বিষয় | strlen() | sizeof() |
|---|---|---|---|
| ১ | সংজ্ঞা | strlen() হল একটি প্রিডিফাইন্ড ফাংশন যা C-তে string.h হেডার ফাইলে সংজ্ঞায়িত। |
sizeof() হল একটি উন্যারি অপারেটর (unary operator), এটি কোন প্রিডিফাইন্ড ফাংশন নয়। |
| ২ | ইমপ্লিমেন্টেশন | strlen ইন্টারনালি এমনভাবে ইমপ্লিমেন্ট করা হয়েছে যা স্ট্রিংয়ের ক্যারেক্টার সংখ্যা গণনা করে null মান বাদ দিয়ে, অর্থাৎ null-টার্মিনেটেড স্ট্রিংয়ের দৈর্ঘ্য রিটার্ন করে। |
sizeof এমনভাবে ইমপ্লিমেন্ট করা হয়েছে যাতে এটি যেকোনো টাইপের ডেটার (অ্যালোকেটেড) আসল আকার বাইটে গণনা করে (null মান সহ)। |
| ৩ | Null হ্যান্ডলিং | strlen null ক্যারেক্টার বাদ দিয়ে স্ট্রিংয়ের মোট দৈর্ঘ্য গণনায় অন্তর্ভুক্ত করে না। |
sizeof ভেরিয়েবলের মান নিয়ে চিন্তা করে না, এটি যেকোনো টাইপের ডেটার (অ্যালোকেটেড) আসল আকার বাইটে গণনা করে (null মান সহ)। |
মূল अन्तর: strlen() স্ট্রিংয়ের লজিক্যাল দৈর্ঘ্য (null বাদে) দেয়, আর sizeof() মেমোরিতে নেওয়া আসল স্পেস (null সহ) বাইটে দেয়। স্ট্রিং হ্যান্ডলিং-এ সঠিক ফাংশন বেছে নেওয়া অত্যন্ত গুরুত্বপূর্ণ।