বিষয়বস্তুতে চলুন

প্রোগ্রামিংয়ের মৌলিক ধারণা/স্ট্রিং

উইকিবই থেকে

সংক্ষিপ্ত বিবরণ

[সম্পাদনা]

স্ট্রিং হলো অক্ষরের একটি ধারাবাহিক বিন্যাস, যা একটি লিটারেল কনস্ট্যান্ট বা চলক (ভেরিয়েবল) হিসেবে ব্যবহৃত হতে পারে। একটি চলক স্থির (fixed) বা পরিবর্তনশীল (dynamic) হতে পারে। স্ট্রিংকে একটি ডেটা টাইপ হিসেবে গণ্য করা হয়, যা সাধারণত বাইটের অ্যারে ডেটা স্ট্রাকচারের মাধ্যমে বাস্তবায়ন করা হয় এবং এতে অক্ষর এনকোডিং ব্যবহার করে উপাদানগুলোর একটি ক্রম সংরক্ষণ করা হয়। []

আলোচনা

[সম্পাদনা]

যে ভেরিয়েবলকে স্ট্রিং হিসেবে ঘোষণা করা হয়, তা মেমোরিতে স্থিরভাবে (স্ট্যাটিক্যালি) বা গতিশীলভাবে (ডাইনামিকলি) সংরক্ষণের জন্য স্থান বরাদ্দ করতে পারে। যখন কোনো স্ট্রিং সোর্স কোডে সরাসরি লেখা থাকে, তখন তাকে স্ট্রিং লিটারেল বা বেনামী স্ট্রিং বলা হয়।[]

অধিকাংশ ডেটা একটি মাত্র অক্ষর, পূর্ণসংখ্যা ইত্যাদির তুলনায় অনেক বেশি জটিল। অ্যারে হলো একই ডেটা টাইপের একাধিক উপাদানের একটি ক্রমানুসারিত সংগ্রহ, যার একটি মাত্র শনাক্তকারী নাম থাকে। এক-মাত্রিক অ্যারে (বা তালিকা) উপাদানগুলোকে সাধারণত উল্লম্বভাবে তালিকাভুক্ত করে। স্ট্রিংকে এক-মাত্রিক অ্যারে হিসেবে ধরা হয় যা অনুভূমিকভাবে প্রদর্শিত হয়।

“C” প্রোগ্রামিং ভাষায় সব স্ট্রিং একটি অক্ষরের অ্যারে হিসেবে ব্যবহৃত হতো, যার শেষে একটি ASCII নাল (null) অক্ষর থাকত (যার মান 0, অর্থাৎ ASCII অক্ষর সেটের প্রথম অক্ষর)। এই পদ্ধতিতে প্রোগ্রামারদেরকে স্ট্রিংয়ের দৈর্ঘ্য নিজে হিসাব করতে হতো এবং স্ট্রিংয়ের জন্য মেমোরি ব্যবস্থাপনাও নিজে করতে হতো। এর ফলে প্রায়ই বাফার ওভারফ্লো ঘটত। ‘বাফার ওভারফ্লো’ বা বাফার ওভাররান একটি ব্যতিক্রমী পরিস্থিতি, যেখানে কোনো প্রোগ্রাম যখন কোনো বাফারে ডেটা লেখে, তখন সেই বাফারের সীমা ছাড়িয়ে পার্শ্ববর্তী মেমোরি অংশও ওভাররাইট করে ফেলে। এটি একটি মারাত্মক নিরাপত্তা ঝুঁকি তৈরি করতে পারে এবং প্রোগ্রাম ক্র্যাশ বা ম্যালওয়্যার এক্সপ্লয়টের সুযোগ তৈরি করতে পারে।[]

"জাভাস্ক্রিপ্ট" প্রোগ্রামিং ভাষায় স্ট্রিংয়ের অবস্থান গণনা শূন্য (0) থেকে শুরু হয়। অর্থাৎ, 0 হলো স্ট্রিংয়ের প্রথম অক্ষর, 1 দ্বিতীয়, 2 তৃতীয়—এভাবে ক্রমানুসারে চলতে থাকে।

জাভাস্ক্রিপ্টে অনেক স্ট্রিং ফাংশন রয়েছে, যার মধ্যে অন্যতম গুরুত্বপূর্ণ হলো lastIndexOf()। এই ফাংশনটি নির্দিষ্ট কোনো অক্ষর বা উপ-স্ট্রিং (substring) স্ট্রিংয়ের মধ্যে খুঁজে বের করে এবং যদি পাওয়া যায়, তবে তার ইনডেক্স (অবস্থান) নম্বর রিটার্ন করে। এটি স্ট্রিংয়ের শেষ থেকে শুরু করে শুরু পর্যন্ত অনুসন্ধান চালায়। যদি কিছু না পাওয়া যায়, তবে এটি -1 রিটার্ন করে। start একটি ঐচ্ছিক আর্গুমেন্ট, যা নির্ধারণ করে কোন ইনডেক্স থেকে অনুসন্ধান শুরু হবে। এর ডিফল্ট মান হলো string.length - 1। slice(start, [end]) ফাংশনটি স্ট্রিংয়ের নির্দিষ্ট start ও end ইনডেক্সের ভিত্তিতে একটি উপ-স্ট্রিং (substring) রিটার্ন করে। তবে এখানে end ইনডেক্সটি অন্তর্ভুক্ত হয় না। end ঐচ্ছিক, এবং যদি এটি না দেওয়া হয়, তাহলে start থেকে স্ট্রিংয়ের শেষ পর্যন্ত উপাদান রিটার্ন করা হয়।split(delimiter, [limit]) ফাংশনটি একটি নির্দিষ্ট বিভাজক (delimiter) ব্যবহার করে স্ট্রিংকে অনেকগুলো ভাগে বিভক্ত করে এবং প্রতিটি অংশ একটি অ্যারেতে রেখে দেয়। ঐচ্ছিক limit আর্গুমেন্ট একটি পূর্ণসংখ্যা, যা নির্ধারণ করে সর্বোচ্চ কতটি উপাদান রিটার্ন করা হবে। জাভাস্ক্রিপ্টে আরও অনেক স্ট্রিং ফাংশন রয়েছে, যেগুলো গুরুত্বপূর্ণ, এবং এখানে দেওয়া ফাংশনগুলো কেবলমাত্র উদাহরণস্বরূপ। স্ট্রিং ফাংশনের সাহায্যে স্ট্রিং নিয়ে বিভিন্ন জটিল ও প্রয়োজনীয় কাজ সহজেই করা যায়।

বর্তমান অধিকাংশ প্রোগ্রামিং ভাষায় স্ট্রিংকে একটি ডেটা টাইপ বা ক্লাস হিসেবে বাস্তবায়ন করা হয়, যেখানে স্ট্রিং একটি দৈর্ঘ্য-নিয়ন্ত্রিত অ্যারে হিসেবে সংরক্ষিত থাকে। স্ট্রিংয়ের দৈর্ঘ্য ও মেমোরি সংরক্ষণ কম্পাইলার বা ইন্টারপ্রেটার দ্বারা স্বয়ংক্রিয়ভাবে পরিচালিত হয়, ফলে প্রোগ্রামে ত্রুটির সম্ভাবনা অনেক কমে যায়।

প্রোগ্রামিং ভাষা সংরক্ষিত শব্দ
সি++ string
সি# String
জাভা String
জাভাস্ক্রিপ্ট String
পাইথন str()
সুইফট String

মূল শব্দাবলী

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

তথ্যসূত্র

[সম্পাদনা]