কম্পিউটার

C++ এ স্ট্রিং এবং char[] প্রকারের মধ্যে পার্থক্য


এই বিভাগে আমরা C++-এ স্ট্রিং এবং char[]-এর মধ্যে পার্থক্য কী তা দেখব। char[] মূলত অক্ষরের একটি অ্যারে। তাই এই অ্যারের কিছু বৈশিষ্ট্য আছে. এই বৈশিষ্ট্যগুলি নীচে তালিকাভুক্ত করা হয়েছে৷

  • যদি char[] স্ট্যাক বিভাগে বরাদ্দ করা হয় তবে এটি সর্বদা 256 বাইট স্থান দখল করবে। এটি পাঠ্যের আকারের উপর নির্ভর করবে না।

  • যদি আমরা malloc() বা calloc() ব্যবহার করি গতিশীলভাবে হিপ বিভাগে এটির জন্য স্থান বরাদ্দ করার জন্য, তাহলে আমরা এটি ব্যবহার করার পরে মেমরি রিলিজ করার জন্য দায়ী, এবং আমাদের কাছে সর্বদা একটি গাদা বরাদ্দের ওভারহেড থাকে।

  • অক্ষর অ্যারের আকার 256 অক্ষরের চেয়ে বড় হলে, প্রোগ্রামটি ক্র্যাশ হতে পারে। এটি আমাদের কোডে কুৎসিত দাবি বার্তা তৈরি করতে পারে৷

  • স্ট্রিংয়ের দৈর্ঘ্য পেতে আমাদের প্রতিবার '\0' অক্ষরে না পৌঁছানো পর্যন্ত আমাদের সম্পূর্ণ অক্ষর অ্যারে স্ক্যান করতে হবে।

অন্যদিকে, C++ এর স্ট্যান্ডার্ড নেমস্পেসে স্ট্রিং আছে। এই স্ট্রিংটি একটি ক্লাস, এবং এটি এর ভিতরে অক্ষর অ্যারে রয়েছে। এটি স্বয়ংক্রিয়ভাবে ব্যবহারকারীর জন্য পরিচালনা করে। বেশিরভাগ ক্ষেত্রে স্ট্রিংয়ের জন্য অন্তর্নির্মিত অ্যারে 16টি অক্ষর। তাই ছোট স্ট্রিংয়ের জন্য এটি স্ট্রিংকে খণ্ডিত করে না, তবে বড় স্ট্রিংয়ের জন্য এটি হিপ সেকশন ব্যবহার করে।

C++ স্ট্রিং-এ অন্তর্নির্মিত '\0' অক্ষর রয়েছে। এটি গণনা ছাড়াই স্ট্রিংয়ের দৈর্ঘ্য সংরক্ষণ করে। সংক্ষিপ্ত টেক্সট হিসাবে গাদা লাগে না তারপর এটি বাফার overruns থেকে রক্ষা করে. এবং অধিকন্তু স্ট্রিংগুলি C++ এ ব্যবহার করা সহজ।


  1. C/C++ এ strncmp() এবং strcmp() এর মধ্যে পার্থক্য

  2. C++ এ 'struct' এবং 'typedef struct' এর মধ্যে পার্থক্য?

  3. C++ স্ট্রিং ধ্রুবক এবং অক্ষর ধ্রুবকের মধ্যে পার্থক্য

  4. C++ এ রিলেশনাল অপারেটর(==) এবং std::string::compare() এর মধ্যে পার্থক্য