কম্পিউটার টিউটোরিয়াল

C প্রোগ্রামিং-এ strlen() এবং sizeof() ফাংশনের পার্থক্য

প্রোগ্রামিং-এ স্ট্রিংকে ক্যারেক্টারসমূহের সমষ্টি হিসেবে সংজ্ঞায়িত করা হয়। একটি স্ট্রিং তৈরিতে কতগুলো ক্যারেক্টার ব্যবহৃত হয়েছে তা জানার জন্য 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 সহ) বাইটে দেয়। স্ট্রিং হ্যান্ডলিং-এ সঠিক ফাংশন বেছে নেওয়া অত্যন্ত গুরুত্বপূর্ণ।

  1. জাভাতে String এবং StringBuffer ক্লাসের পার্থক্য

  2. জাভাতে StringBuffer এবং StringBuilder এর পার্থক্য

  3. OneNote এবং OneNote for Windows 10-এর পার্থক্য

  4. পাইথনে বিষম ও জোড় অঙ্কগুলোর যোগফলের পার্থক্য বের করার প্রোগ্রাম