স্ট্রিং এর দৈর্ঘ্য চিহ্নিত করা

C:
স্ট্রিং এর দৈর্ঘ্য চিহ্নিত করা

কিভাবে:

সি ভাষায়, স্ট্যান্ডার্ড লাইব্রেরি ফাংশন strlen() সাধারণত একটি স্ট্রিংয়ের দৈর্ঘ্য খুঁজে পেতে ব্যবহৃত হয়। এখানে একটি দ্রুত উদাহরণ দেওয়া হল:

#include <stdio.h>
#include <string.h>

int main() {
    char myString[] = "Hello, World!";
    size_t length = strlen(myString);
    
    printf("Length of '%s' is %zu.\n", myString, length);
    
    return 0;
}

নমুনা আউটপুট:

'Hello, World!' এর দৈর্ঘ্য হল 13.

এই উদাহরণে, strlen() একটি স্ট্রিং (এখানে myString) নেয় হিসাবে ইনপুট এবং তার দৈর্ঘ্য নাল টার্মিনেটর ছাড়াই ফেরত দেয়। দৈর্ঘ্য ভেরিয়েবলের জন্য size_t ব্যবহার করা উচিত কারণ এটি একটি আনসাইন্ড ইন্টিজার টাইপ, যা সিস্টেমে সম্ভবত সর্ববৃহৎ অবজেক্টের আকার প্রতিনিধিত্ব করতে সক্ষম।

গভীর ডাইভ:

strlen() ফাংশন ভাষা প্রচলিত হওয়ার থেকেই সি স্ট্যান্ডার্ড লাইব্রেরির একটি অংশ। এটি মূলত স্ট্রিং ট্র্যাভার্স করতে করতে একটি কাউন্টার বাড়িয়ে চলে, যতক্ষণ না এটি নাল টার্মিনেটরে পৌঁছায়। যাহোক, এর সাধারণত্বের কারণে পারফরমেন্সের বিষয় উত্থাপিত হয়: উদাহরণস্বরূপ, একই স্ট্রিংয়ের উপর কোন লুপের মধ্যে বারবার strlen() কল করা অনকার্যকরী।

নিরাপত্তা বিষয়ে, strlen() এবং অন্যান্য সি স্ট্রিং-হ্যান্ডলিং ফাংশনগুলি স্বাভাবিকভাবে বাফার অতিক্রমের জন্য পরীক্ষা করে না, ফলে সাবধানী প্রোগ্রামিং জরুরি হয়ে ওঠে দুর্বলতা এড়াতে। অন্যান্য ভাষায় আধুনিক বিকল্পগুলি, যেমন যে স্ট্রিং টাইপগুলি দৈর্ঘ্য অন্তর্ভুক্ত করে বা নিরাপদ বাফার হ্যান্ডলিং ডিফল্টরূপে ব্যবহার করে, এই ঝুঁকিগুলি এবং অকার্যকারিতাগুলি কিছুটা নিরসন করে।

এর সীমাবদ্ধতা সত্ত্বেও, সি ভাষায় strlen() এবং ম্যানুয়াল স্ট্রিং হ্যান্ডলিং বোঝা প্রোগ্রামারদের জন্য অপরিহার্য, বিশেষত যখন তারা কম স্তরের কোড নিয়ে কাজ করে বা যখন পারফরমেন্স এবং মেমরি নিয়ন্ত্রণ অত্যন্ত জরুরি হয়ে পড়ে। এটি অন্যান্য ভাষায় উচ্চস্তরের স্ট্রিং অ্যাবস্ট্র্যাকশনের কাজের ধারণা দেও৯া ক্ষেত্রেও মূল্যবান অন্তর্দৃষ্টি প্রদান করে।