C++:
স্ট্রিং এর দৈর্ঘ্য চিহ্নিত করা
কিভাবে করবেন:
C++ একটি স্ট্রিংয়ের দৈর্ঘ্য বের করার জন্য একটি সরল পথ প্রদান করে std::string
ক্লাসের length()
মেথড ব্যবহার করে। কিন্তু যদি আপনি পুরানো ধারা অনুসরণ করেন, তাহলে C-স্টাইল স্ট্রিং এবং strlen()
ব্যবহার করতে পারেন। এখানে দুটি উদাহরণ দেওয়া হয়েছে:
#include <iostream>
#include <string>
#include <cstring>
int main() {
// std::string ব্যবহার করে
std::string greeting = "Hello, World!";
std::cout << "স্ট্রিংয়ের দৈর্ঘ্য (std::string): " << greeting.length() << std::endl;
// C-স্টাইল স্ট্রিং ব্যবহার করে
const char *c_greeting = "Hello, World!";
std::cout << "স্ট্রিংয়ের দৈর্ঘ্য (C-স্টাইল): " << strlen(c_greeting) << std::endl;
return 0;
}
নমুনা আউটপুট:
স্ট্রিংয়ের দৈর্ঘ্য (std::string): 13
স্ট্রিংয়ের দৈর্ঘ্য (C-স্টাইল): 13
গভীর ডুব:
মূলত, C++ C-স্টাইল ক্যারেক্টার অ্যারে এবং তার সাথে যুক্ত strlen()
ফাংশনকে C থেকে উত্তরসূরি করে নিয়েছে। strlen()
ফাংশনটি নাল ক্যারেক্টার '\0'
এ পৌঁছানোর জন্য অ্যারের মধ্যে দিয়ে এগিয়ে যায়, এবং তার মাধ্যমে দৈর্ঘ্য নির্ণয় করে। এটি একটি সাধারণ কিন্তু কার্যকরী কৌশল, তবে std::string.length()
এর দক্ষতা ছাড়িয়ে যাওয়া সম্ভব নয়, যা সাধারণত দ্রুত পুনরুদ্ধারের জন্য দৈর্ঘ্য ট্র্যাক করে রাখে।
বিকল্প পথ? অবশ্যই আছে:
- আপনি আরও
size()
মেথড ব্যবহার করতে পারেন, যাstd::string
এর জন্যlength()
এর সমান। - ওয়াইড ক্যারেক্টার স্ট্রিংয়ের জন্য,
std::wstring
এবং এরlength()
মেথড আপনার বন্ধু। - মশলাদার বিকল্প হিসেবে কাস্টম ফাংশন অথবা ইটারেটরস সাথে
std::distance
মত এলগরিদম ব্যবহার করা যায়।
তবে সতর্ক থাকুন, std::string::length()
একটি size_t
টাইপ ফেরত দেয়, একটি অনির্দেশিত পূর্ণসংখ্যা, যা এক্সপ্রেশনে নির্দেশিত টাইপের সাথে মিশ্রিত হলে অপ্রত্যাশিত আচরণের জন্ম দিতে পারে।
দেখুন এছাড়াও:
std::string::length()
এর জন্য C++ রেফারেন্স: https://en.cppreference.com/w/cpp/string/basic_string/lengthstrlen()
এর জন্য C++ রেফারেন্স: https://en.cppreference.com/w/cpp/string/byte/strlenstd::string
এবং C-স্টাইল স্ট্রিং সম্পর্কে আরও: https://www.learncpp.com/cpp-tutorial/4-4a-c-style-strings/std::string
ক্লাস সম্পর্কে গভীরে জানতে আগ্রহীদের জন্য: https://en.cppreference.com/w/cpp/string/basic_string