Strstr () সি ভাষায় একটি অন্তর্নির্মিত ফাংশন। যদি আপনি উবুন্টুতে কাজ করেন তবে উবুন্টু টার্মিনালে উপস্থিত ম্যানুয়ালের মাধ্যমে strstr এর কার্যকারিতা বোঝা যায়। তারপরে টার্মিনাল আপনাকে strstr এর গাইড এবং এটি কীভাবে কাজ করে তা দেখাবে।
$মানুষstrstr
উদাহরণ 1
Strstr এর প্রথম উদাহরণ বিবেচনা করুন; আমরা একটি ফাইলে কোড ব্যবহার করেছি। এবং আমরা টার্মিনালে এই ফাইলের মাধ্যমে আউটপুট পাব। যেমনটি জানা যায় যে এর ইনপুট strstr দুটি স্ট্রিং, যেখানে একটি স্ট্রিং এর ঘটনা অন্য স্ট্রিংয়ে চিহ্নিত করা হয়। প্রথমে লাইব্রেরির হেডার string.h ব্যবহার করা হবে যা স্ট্রিং এর অনেক ফাংশন পরিচালনা করে। এই লাইব্রেরি চালু না হলে, স্ট্রিং ফাংশনের একটি প্রোগ্রাম চালানো সম্ভব নয়। এই সোর্স কোডে ব্যবহৃত স্ট্রিং ফাংশন হল
পি= strstr (s1,s2)
এর মধ্যে p হল একটি পয়েন্টার। S1 এবং S2 দুটি স্ট্রিং। আমাদের স্ট্রিং s1 এ s2 এর উপস্থিতি খুঁজে বের করতে হবে। ফলাফল প্রিন্ট করার জন্য, আমরা স্ট্রিং এর প্রথম ঘটনা পরীক্ষা করে এমন শর্ত প্রয়োগ করতে if-else স্টেটমেন্ট ব্যবহার করেছি। যদি বিশেষ স্ট্রিংটি মূল স্ট্রিংয়ে উপস্থিত থাকে তবে এটি একটি নিশ্চিতকরণ বার্তা সহ প্রদর্শিত হবে। যদি এটি উপস্থিত না হয়, তাহলে একটি বার্তা প্রদর্শিত হবে।
উপরের স্ক্রিনশটে, আপনি একটি ইনপুট স্ট্রিং দেখতে পারেন যেখান থেকে আপনাকে ছোট স্ট্রিং চিহ্নিত করতে হবে। সেই ছোট স্ট্রিংটিও উল্লেখ করা হয়েছে যদি বিবৃতিটি প্যারামিটারে একটি যুক্তি হিসাবে, p এর মান হিসাবে গ্রহণ করবে strstr ফাংশন এটি সংরক্ষণ করা হয়।
আপনি যদি লিনাক্স অপারেটিং সিস্টেমে কাজ করেন এবং আউটপুট পেতে চান। তারপর উবুন্টু টার্মিনালে কয়েকটি কমান্ড ব্যবহার করে এটি করা যেতে পারে। প্রথম কমান্ডটি সংকলনের জন্য
$GCC –o file9 file9.c
সংকলনের জন্য, আমাদের একটি কম্পাইলার প্রয়োজন, GCC এটি লিনাক্সে ব্যবহৃত একটি সি প্রোগ্রাম কম্পাইল করার জন্য। -o সোর্স ফাইল থেকে একটি আউটপুট ফাইলে ফলাফল সংরক্ষণ করতে ব্যবহৃত হয়। এখন পরবর্তী ধাপ হল মৃত্যুদন্ড।
$।/ফাইল 8এটি একটি বিন্দু পদ্ধতি ব্যবহার করে সম্পন্ন করা হয়। যেখানে আমরা ফাইলের নামের সাথে একটি বিন্দু এবং একটি স্ল্যাশ ব্যবহার করি।
আউটপুট দেখায় যে সাবস্ট্রিং উপস্থিত ছিল এবং ফাইলে তার অবস্থানও দেখায়।
উদাহরণ 2
If-statement ব্যবহার না করে এটি strstr () ফাংশনের আরেকটি সহজ উদাহরণ। এই সি প্রোগ্রামে, আমরা স্ট্রিংয়ের একটি নির্দিষ্ট শব্দের সাথে মিলিত হব এবং তারপর এটি আনব কারণ শব্দটি তার উপস্থিতি অনুসারে মিলছে। তারপর আউটপুটে, শব্দ এবং সাবস্ট্রিং সহ উপস্থিত অক্ষরগুলিও প্রদর্শিত হয়।
আউটপুট = strstr(a, সার্চস্ট্রিং);
যেমন কোডটি পয়েন্টার ভেরিয়েবল ব্যবহার করে প্রাপ্ত হয়। যেহেতু এই পয়েন্টারটি সাবস্ট্রিং এর লোকেশন পেতে এবং সাবস্ট্রিং দেখার জন্য ব্যবহার করা হয়, আমরা আউটপুট কমান্ডে তারকাচিহ্ন ছাড়া শুধুমাত্র ভেরিয়েবল নাম ব্যবহার করি। যদি আমরা অবস্থান প্রদর্শন করতে চাই, তাহলে আমরা পয়েন্টার (একটি তারকা চিহ্ন সহ পরিবর্তনশীল), অর্থাৎ, *আউটপুট ব্যবহার করব।
আপনি এটি আউটপুটে দেখতে পারেন। শব্দ ফাংশনটি একটি সাবস্ট্রিং হিসাবে অনুসন্ধান করা হয়েছিল। সাবস্ট্রিং সহ অক্ষরগুলিও প্রদর্শিত হয়।
উদাহরণ 3
এই কোডে, আমরা প্রথমে সাব-স্ট্রিং এর উপস্থিতি খুঁজে পাব, এবং তারপর এই সাব-স্ট্রিংটি অন্য স্ট্রিং দিয়ে প্রতিস্থাপিত হবে। আবার দুটি স্ট্রিং ইনপুট হিসেবে সংরক্ষিত থাকবে। একটি হল বড় স্ট্রিং, এবং অন্যটি এমন একটি শব্দ যা প্রতিস্থাপিত হওয়ার পর তার উপস্থিতি নির্ধারণ করা হবে। দ্য strstr ফাংশন মূল সাব-স্ট্রিংটি মূলটির সাথে মেলে। এবং যখন ম্যাচটি প্রথমবারের জন্য প্রতিষ্ঠিত হয়, তখন এটি মান প্রদান করে। কিন্তু এই উদাহরণে, এই মানটি আরও প্রতিস্থাপিত হয়েছে। দেখা যাক এটি কিভাবে কাজ করবে।
P = strstr(s1, s2);যেখানে p তার মধ্যে ঘটনার মান সংরক্ষণ করবে, S1 এবং s2 হল ইনপুট স্ট্রিং।
এখন আমরা যে ইনপুট স্ট্রিং এর ঘটনার বিন্দু আছে। এখন আমরা এই স্ট্রিংটিকে অন্য শব্দ দিয়ে প্রতিস্থাপন করব। এটি if স্টেটমেন্টের বডিতে করা হয়। এটি দেখায় যে যদি শর্তটি সত্য হয়, শব্দটি প্রতিষ্ঠিত হয়, তাহলে অন্য শব্দ দ্বারা প্রতিস্থাপিত হয়। এই প্রতিস্থাপন অন্য স্ট্রিং ফাংশনের মাধ্যমে সম্পন্ন করা হয়।
Strcpy(p, strstr)আমরা শব্দটি দিয়ে প্রতিস্থাপন করতে চাই strstr । যেখানে p সেই সাবস্ট্রিং এর প্রথম ঘটনার অবস্থান যেখানে ফাংশনটি প্রতিস্থাপিত হয়েছে। Strcpy () স্ট্রিং এ এই দুটি শব্দ প্রতিস্থাপন করে। আউটপুট একই কম্পাইল-এক্সিকিউশন পদ্ধতির মাধ্যমে প্রাপ্ত হবে।
আউটপুট থেকে, আপনি দেখতে পারেন যে স্ট্রিংটি এখন অন্য শব্দ দিয়ে প্রতিস্থাপিত হয়েছে যা আমরা strcpy ফাংশনে বর্ণনা করেছি।
উদাহরণ 4
এই উদাহরণ একই ধারণা দেখায়। এখানে আমরা শব্দের পাশাপাশি একটি সাবস্ট্রিং হিসাবে একটি অক্ষর হিসাবে মুক্ত স্থান গ্রহণ করেছি। এটি একটি সহজ দৃষ্টান্ত যেখানে আমরা এমনকি-বিবৃতি ব্যবহার করি নি। শুধুমাত্র ম্যাচ এবং ডিসপ্লে ধারণা প্রয়োগ করা হয়। দুটি স্ট্রিং ইনপুট হিসাবে নেওয়া হয়। উপরন্তু, শব্দটি বার্তার সাথে প্রদর্শিত হয়। দ্য strstr একই পদ্ধতিতে কাজ করে।
গ= strstr(a, খ);এখানে c হল পরিবর্তনশীল যেখানে ঘটনা বিন্দু সংরক্ষণ করা হবে।
এখন, আমরা আউটপুট গ্রহণ করব।
আউটপুট থেকে, আপনি লক্ষ্য করতে পারেন যে স্থানটি আমাদের উপস্থাপনের সাথেও গণনা করা হয়।
উদাহরণ 5
এই উদাহরণটি আগেরগুলির থেকে বেশ ভিন্ন। এখানে আমরা ক্রিয়া সম্পাদনের জন্য একটি পৃথক ফাংশন ব্যবহার করেছি strstr () মূল প্রোগ্রামের পরিবর্তে। তুলনায়, মানগুলি ফাংশন কলের পরামিতিগুলিতে আর্গুমেন্ট হিসাবে পাস করা হবে। এই উদাহরণে, আমরা সাবস্ট্রিং উল্লেখ করেছি, এবং প্রোগ্রাম, এক্সিকিউশনের পরে, আউটপুটের মানের পরিবর্তে প্রথম ঘটনার অবস্থান দেখাবে। ফাংশনটি ভেরিয়েবলের মানগুলি গ্রহণ করবে এবং তারপরে আমরা strstr () এই ভেরিয়েবলের উপর। যদি- else স্টেটমেন্টটি প্রাপ্যতা যাচাই করতে এবং শর্তটি সত্য করতে এবং যদি এটি মিথ্যা হয় তবে অন্য অংশে যান।
চর*pos = strstr(str, substr);যেখানে পৃ একটি স্ট্রিং, সাবস্ট্র একটি স্ট্রিং। চর*পজ স্ট্রিং এর একটি সাবস্ট্রিং এর প্রথম ঘটনার অবস্থান। চিহ্ন ' %s প্রদর্শিত বিবৃতিতে উপস্থিত মানে একটি স্তর এবং পুরো স্ট্রিং প্রতিস্থাপন করা। প্যারামিটারে স্ট্রিংয়ের আগে সাবস্ট্রিং উপস্থিত থাকে।
এখন মূল কর্মসূচির দিকে এগোচ্ছি। প্রথমে একটি স্ট্রিং চালু করা হয় যা একটি ফাংশন কলের মাধ্যমে পাস করা হবে
Find_str(str, সেরা);এখানে আমরা স্ট্রিং সহ সাবস্ট্রিং যুক্ত করেছি। প্রতিবার একটি নতুন সাবস্ট্রিং যোগ করা হয়। দ্বিতীয়বার আমরা একটি মুক্ত স্থান অক্ষর যুক্ত করেছি। তৃতীয়বার, একটি স্ট্রিং যা স্ট্রিংয়ের একটি অংশ নয়। এবং সর্বশেষ, একটি বর্ণমালা ব্যবহার করা হয়।
কমান্ডগুলি ব্যবহার করুন এবং তারপরে নীচে সংযুক্ত ফলাফলটি দেখুন।
এখানে সি প্রোগ্রাম ফাংশন কলগুলির ফলাফল। প্রথম দুই এবং চতুর্থ বিবৃতি শর্ত পূরণ করে, তাই উত্তরটি প্রদর্শিত হয়। তৃতীয়টি প্রাসঙ্গিক নয়, তাই অন্য অংশ এটি পরিচালনা করবে।
উপসংহার
এই নিবন্ধে, এর ব্যবহার strstr উদাহরণসহ আলোচনা করা হয়েছে। এই উদাহরণগুলি বিভিন্নভাবে সেই ধারণাকে ব্যবহার করার ক্ষেত্রে বৈচিত্র্য দেখায়। লাইব্রেরিতে তাদের হেডারের উপস্থিতিতে স্ট্রিং ফাংশন ব্যবহার করা সহজ।