চরিত্রের অ্যারে এবং স্ট্রিংয়ের মধ্যে পার্থক্য
কন্টেন্ট
সি ++ উভয় সমর্থন করে, চরিত্রের অ্যারে এবং স্ট্রিং, যেমন দু'টি ব্যবহারে সি ++ এর যথেষ্ট সুবিধা রয়েছে। তবে, অক্ষর অ্যারেতে অপারেশন করতে অক্ষমতা শ্রেণিবদ্ধের বিকাশের উত্থাপন করে। একটি অক্ষর অ্যারে এবং স্ট্রিং উভয় অক্ষরের ক্রম থাকে। তবে অক্ষর অ্যারে এবং স্ট্রিংয়ের মধ্যে মৌলিক পার্থক্য হ'ল "ক্যারেক্টার অ্যারে" স্ট্যান্ডার্ড অপারেটরগুলির সাথে পরিচালিত হতে পারে না, যেখানে "স্ট্রিং" অবজেক্টগুলি স্ট্যান্ডার্ড অপারেটর দিয়ে পরিচালনা করতে পারে। আসুন একটি অক্ষর অ্যারে এবং স্ট্রিংয়ের মধ্যে অন্যান্য পার্থক্যগুলি অধ্যয়ন করি।
- তুলনা রেখাচিত্র
- সংজ্ঞা
- মূল পার্থক্য
- উপসংহার
তুলনা রেখাচিত্র
তুলনা করার জন্য বেস | চরিত্রের অ্যারে | দড়ি |
---|---|---|
মৌলিক | অক্ষর অ্যারে হল ভ্যারিয়েবলের সংগ্রহ, চরিত্রের ডেটা টাইপের। | স্ট্রিং ক্লাস এবং স্ট্রিংয়ের ভেরিয়েবলগুলি ক্লাস "স্ট্রিং" এর অবজেক্ট। |
বাক্য গঠন | চর অ্যারে_নাম; | স্ট্রিং স্ট্রিং_নাম; |
ইন্ডেক্সিং | একটি অক্ষরের অ্যারেতে পৃথক একটি অক্ষর অ্যারেতে তার সূচক দ্বারা অ্যাক্সেস করা যায়। | স্ট্রিংয়ে নির্দিষ্ট অক্ষরটি "string_name.charAt (সূচক)" ফাংশন দ্বারা অ্যাক্সেস করা যায়। |
ডেটা টাইপ | একটি অক্ষর অ্যারে একটি ডেটাটাইপ সংজ্ঞায়িত করে না। | একটি স্ট্রিং সি ++ এ একটি ডেটাটাইপ সংজ্ঞায়িত করে। |
অপারেটর | সি ++ এ অপারেটরগুলি অক্ষর অ্যারেতে প্রয়োগ করা যাবে না। | আপনি স্ট্রিংয়ের উপর স্ট্যান্ডার্ড সি ++ অপারেটর প্রয়োগ করতে পারেন। |
সীমানা | অ্যারে সীমানা সহজেই অতিক্রম করা হয়। | সীমানা অতিক্রম করবে না। |
প্রবেশ | দ্রুত অ্যাক্সেস। | অল্প অ্যাক্সেস। |
অক্ষর অ্যারের সংজ্ঞা
একটি চরিত্রের অ্যারে হ'ল "চর" ডেটাটাইপের পরিবর্তনশীলগুলির সংগ্রহ; এটি এক-মাত্রিক অ্যারে বা দ্বিমাত্রিক অ্যারে হতে পারে। একে "নাল টার্মিনেটেড স্ট্রিং "ও বলা হয়। একটি অক্ষর অ্যারে হ'ল অক্ষরগুলির ক্রম যা ক্রমাগত মেমরি ঠিকানার মধ্যে সংরক্ষণ করা হয়। একটি অক্ষরের অ্যারেতে, একটি নির্দিষ্ট অক্ষর তার সূচক দ্বারা অ্যাক্সেস করা যেতে পারে। একটি "নাল চরিত্র" অক্ষরের অ্যারেটি সমাপ্ত করে "।
আসুন চরিত্রের অ্যারের উদাহরণ নিই:
চর নাম = {এ, জে, এ, ওয়াই, 0}; বা চর নাম = "অজয়";
এখানে, "চর" একটি চরিত্রের ডেটা টাইপ, "নাম" অক্ষর অ্যারের একটি পরিবর্তনশীল নাম। চরিত্রের অ্যারেটি শুরু করার জন্য আমি দুটি উপায় দেখিয়েছি। প্রথম পদ্ধতিতে নালটি স্পষ্টভাবে উল্লেখ করা হয় এবং দ্বিতীয় পদ্ধতিতে সংকলকটি স্বয়ংক্রিয়ভাবে নালটি সন্নিবেশ করে।
স্ট্রিংয়ের শেষে সর্বদা একটি নাল অক্ষর; এটি চরিত্রের অ্যারেরের সমাপ্তি চরিত্র। একটি অক্ষর অ্যারে অন্তর্নির্মিত ডেটা টাইপ নয়; আমরা এটি ঘোষণা করে অক্ষরের অ্যারে তৈরি করি। আপনি কোনও অক্ষরের অ্যারে স্ট্যান্ডার্ড অপারেটর প্রয়োগ করতে পারবেন না। চরিত্রের অ্যারেতে পরিচালনা করার জন্য কিছু বিল্ট-ইন ফাংশন যেমন, (স্ট্রেলেন (), স্ট্রলউউআর (), স্ট্রપ્રার (), স্ট্রিকাট ()) রয়েছে। স্ট্যান্ডার্ড অপারেটরগুলিকে একটি অক্ষর অ্যারে প্রয়োগ করা যায় না, তারা কোনও অভিব্যক্তিতে অংশ নিতে পারে না।
একটি অক্ষরের অ্যারেতে অক্ষর নির্দেশকও তৈরি করা যায়।
আসুন এটি একটি উদাহরণ দিয়ে বুঝতে পারি।
চর এস 1 = "হ্যালো"; চর এস 2 = "স্যার"; এস 1 = এস 1 + এস 2; // ত্রুটি অপারেটরগুলি s2 = s1 প্রয়োগ করা যাবে না; // ত্রুটি চরিত্রের পয়েন্টার চর * s = "সকাল"; চর * পি; P =; s //, executes
উপরের উদাহরণে, আমরা দুটি অক্ষর অ্যারে এস 1, এস 2 এবং দুটি চরিত্রের পয়েন্টার গুলি ও পি ঘোষণা করেছি। অক্ষর অ্যারে s1 এবং s2 আরম্ভ করা হয়, আমরা দেখতে পাচ্ছি যে অতিরিক্ত অপারেটর (+) বা অ্যাসাইনমেন্ট অপারেটর অক্ষর অ্যারেতে কাজ করে না। তবে একটি চরিত্র পয়েন্টার অন্য চরিত্রের পয়েন্টারকে দেওয়া যেতে পারে।
মনে রাখবেন অক্ষরের অ্যারে একবার শুরু হয়ে গেলে এটি আর কোনও অক্ষরের সেটগুলিতে আরম্ভ করা যায় না। C ++ এর স্ট্রিংয়ের তুলনায় একটি অক্ষরের অ্যারে বা নাল টার্মিনেটেড স্ট্রিংয়ের অ্যাক্সেস দ্রুত।
স্ট্রিং সংজ্ঞা
একটি স্ট্রিং সি ++ এর অন্তর্নির্মিত ডেটা টাইপ নয়। এটি "স্ট্রিং" ধরণের শ্রেণিবদ্ধ বস্তু। সি ++ তে যেমন একটি ক্লাস তৈরি করা ঠিক "টাইপ" তৈরি করার মতো। ক্লাস "স্ট্রিং" সি ++ গ্রন্থাগারের একটি অংশ। এটি সামগ্রিকভাবে চরিত্র বা চরিত্রের অ্যারের সেট ধারণ করে। স্ট্যান্ডার্ড স্ট্রিং ক্লাসের বিকাশের পিছনে তিনটি কারণ রয়েছে।
- প্রথম হ'ল "ধারাবাহিকতা", চরিত্রের অ্যারেগুলি তাদের নিজস্বভাবে ডেটা টাইপ নয় are
- দ্বিতীয় "সুবিধার্থে", আপনি কোনও অক্ষরের অ্যারে স্ট্যান্ডার্ড অপারেটর ব্যবহার করতে পারবেন না।
- তৃতীয় হ'ল "সুরক্ষা", অ্যারের গণ্ডিগুলি সহজেই ছাপিয়ে যায়।
আসুন একটি উদাহরণ সহ স্ট্রিংগুলি বুঝতে পারি।
স্ট্রিং এস 1; s1 = "হ্যালো"; স্ট্রিং এস 2 ("গুড মর্নিং"); স্ট্রিং এস 3 = "হেনারি"; স্ট্রিং এস 4;
উপরের ঘোষণায় চারটি স্ট্রিং ভেরিয়েবল বা অবজেক্ট (এস 1, এস 2, এস 3, এস 4) ঘোষিত হয়। উপরের ঘোষণায়, আমি স্ট্রিংটি শুরু করার তিনটি উপায় দেখিয়েছি। স্ট্রিং এস 1 ঘোষণা করা হয় এবং তারপরে পৃথকভাবে আরম্ভ করা হয়। স্ট্রিং এস 2 ক্লাস "স্ট্রিং" এর নির্মাতা দ্বারা শুরু করা হয়েছে। স্ট্রিং এস 3 সাধারণ ডেটা টাইপ কর হিসাবে ঘোষণা করার সময় শুরু হয়েছিল। আমরা স্ট্রিং ভেরিয়েবলগুলিতে স্ট্যান্ডার্ড অপারেটর প্রয়োগ করতে পারি।
s4 = s1; // অন্য স্ট্রিং অবজেক্টকে অন্য এস 4 = এস 1 + এস 2 এর জন্য নির্ধারণ করা; // দুটি স্ট্রিং যুক্ত করা এবং তৃতীয় স্ট্রিংয়ে ফলাফল সংরক্ষণ করা যদি (এস 3> এস 2) // দুটি স্ট্রিংয়ের স্ট্রিং এস 5 (এস 1) এর সাথে তুলনা করা; বিদ্যমান স্ট্রিং অবজেক্টটি ব্যবহার করে একটি নতুন স্ট্রিং অবজেক্ট তৈরি করা
উপরের কোডে, বিভিন্ন অপারেটর স্ট্রিংয়ে প্রয়োগ করা হয় এবং বিভিন্ন অপারেশন করা হয়। প্রথম বিবৃতিটি একটি স্ট্রিং অবজেক্টকে অন্য স্ট্রিং অবজেক্টে অনুলিপি করে। দ্বিতীয় বিবৃতিতে, দুটি স্ট্রিং তৃতীয় স্ট্রিংয়ের সাথে সংমিশ্রণ এবং সংরক্ষণ করা হয়। তৃতীয় বিবৃতিতে, দুটি স্ট্রিং তুলনা করা হয়। চতুর্থ বিবৃতিতে, ইতিমধ্যে বিদ্যমান স্ট্রিং অবজেক্টটি ব্যবহার করে একটি নতুন স্ট্রিং অবজেক্ট তৈরি করা হবে।
অক্ষরের অ্যারে বা নাল টার্মিনেটেড স্ট্রিংয়ের তুলনায় স্ট্রিংয়ের অ্যাক্সেস ধীর।
চরিত্রের অ্যারে এবং স্ট্রিংয়ের মধ্যে কী পার্থক্য
- একটি অক্ষর অ্যারে হল ভেরিয়েবলের সংকলন যা চরিত্রের ডেটাটাইপ হয়। স্ট্রিং এমন একটি শ্রেণি যা স্ট্রিং ঘোষণার জন্য তাত্ক্ষণিক হয়।
- সূচক মান ব্যবহার করে আপনি একটি অক্ষর অ্যারে থেকে একটি অক্ষর অ্যাক্সেস করতে পারেন। অন্যদিকে, আপনি যদি কোনও স্ট্রিংয়ের কোনও নির্দিষ্ট চরিত্রের অ্যাক্সেস করতে চান তবে আপনি এটি ফাংশন স্ট্রিংয়ের_নাম.সিআরএটি (সূচি) দ্বারা অ্যাক্সেস করতে পারেন।
- অ্যারে যেমন ডেটাটাইপ নয় তেমনি একটি চরিত্রও ডেটাটাইপ নয়। অন্যদিকে, স্ট্রিং একটি রেফারেন্স টাইপ হিসাবে শ্রেণি হিসাবে কাজ করে তাই বলা যায় স্ট্রিং একটি ডেটা টাইপ।
- আপনি কোনও অক্ষর অ্যারেতে কোনও অপারেটর প্রয়োগ করতে পারবেন না, তবে আপনি স্ট্রিংয়ে অপারেটর প্রয়োগ করতে পারেন।
- অ্যারে চরিত্রের অ্যারে হওয়ার একটি নির্দিষ্ট দৈর্ঘ্য থাকে এবং এর সীমানা সহজেই অতিক্রম করা যায়। যেখানে স্ট্রিংয়ের কোনও সীমানা নেই।
- অ্যারের উপাদানগুলি একটি স্বচ্ছ মেমরির স্থানে সংরক্ষণ করা হয় তাই স্ট্রিং ভেরিয়েবলের চেয়ে দ্রুত অ্যাক্সেস করা যায়।
উপসংহার:
অক্ষর অ্যারেতে পরিচালনা করতে অক্ষমতা স্ট্যান্ডার্ড স্ট্রিং শ্রেণির বিকাশ বাড়িয়ে তোলে।