কিভাবে একটি স্ট্রিংকে সি -তে উল্টানো যায়

How Reverse String C



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

এই নির্দেশিকাটি বাস্তবায়নের সময়, আমরা ভার্চুয়াল বক্সে কনফিগার করা উবুন্টু 20.04 লিনাক্স সিস্টেমে কাজ করছি। লিনাক্স সিস্টেমে কাজ করার সময়, আমরা আমাদের বেশিরভাগ ইনস্টলেশন এবং টার্মিনাল শেলের প্রশ্ন জিজ্ঞাসা করতাম। অতএব, একটি শর্টকাট Ctrl+Alt+T দিয়ে টার্মিনাল শেলটি খুলুন অথবা উবুন্টু ডেস্কটপের কার্যকলাপ এলাকার অধীনে একটি অ্যাপ্লিকেশন অনুসন্ধান বারের মাধ্যমে এটি অনুসন্ধান করুন। অ্যাপটি আপডেট ক্যোয়ারীর মাধ্যমে প্রথমে আপনার সিস্টেম আপডেট করা প্রয়োজন। আপডেটটি চালানোর জন্য এটি আপনাকে বর্তমান ব্যবহারকারীর পাসওয়ার্ড চাইবে। অতএব, একটি পাসওয়ার্ড যোগ করুন এবং এন্টার বোতাম টিপুন।







$ sudo apt আপডেট



যেহেতু আমরা উবুন্টু 20.04 সিস্টেমে স্ট্রিং বিপরীত করার ধারণাটি বিস্তৃত করতে সি প্রোগ্রামিং ভাষা ব্যবহার করছি, তাদের উবুন্টু সিস্টেমে একটি সি কম্পাইলার ইনস্টল করা উচিত। অতএব নীচের প্রশ্নের মাধ্যমে আপনার সিস্টেমে GCC কম্পাইলার ইনস্টল করতে ভুলবেন না।



$ sudo apt gcc ইনস্টল করুন

উদাহরণ 01: ফর লুপ ব্যবহার করা

জিসিসি কম্পাইলারের ইনস্টলেশন এবং কনফিগারেশন এবং অ্যাপ্ট প্যাকেজ আপডেট করার পরে, এটি একটি নতুন ফাইল তৈরি করে। এই ফাইলটি সি টাইপের হতে হবে; অতএব, নিচের মত একটি ফাইল new.c তৈরি করতে টাচ কমান্ড ব্যবহার করুন। এই ফাইলটি এখন থেকে আমাদের কোডে রিভার্স স্ট্রিং প্রোগ্রাম বাস্তবায়নের সময় ব্যবহার করা হবে।





$ টাচ নতুন।

এখন আপনি এই ফাইলটি ন্যানো এডিটর দ্বারা সম্পাদনা বা কোডিংয়ের জন্য খুলতে পারেন যা আপনার উবুন্টু 20.04 লিনাক্স সিস্টেমে অন্তর্নির্মিত। অতএব, এটি করার জন্য আপনার শেলের নীচের নির্দেশটি চেষ্টা করুন।



$ nano নতুন।

উবুন্টু 20.04 সিস্টেমের জিএনইউ ন্যানো এডিটরে নতুন তৈরি করা সি-টাইপ ফাইলটি নতুন খোলা হয়েছে। আপনি একটি সি স্ক্রিপ্ট লিখতে হবে, যেমন স্ক্রিনশট ইমেজ নীচে উপস্থাপন করা হয়েছে। আপনার ভাল বোঝার জন্য আমাদের এই কোডটি বিস্তারিতভাবে বলুন। একটি কোডের শুরুতে, আমরা দুটি লাইব্রেরি অন্তর্ভুক্ত করেছি। লাইব্রেরি stdio.h ইনপুট নিতে এবং আউটপুট প্রদর্শন করতে ব্যবহার করা হয়েছে, এবং অন্যান্য লাইব্রেরি string.h আমাদের কোডে সব ধরণের স্ট্রিং ব্যবহার করতে ব্যবহৃত হয়েছে। একটি স্ট্রিং উল্টানোর সমস্ত কাজ সি কোডের প্রধান () পদ্ধতিতে করা হবে। আমরা একটি ক্যারেক্টার টাইপ স্ট্রিং str ঘোষণা করেছি যার আকার 50। এর মানে হল 50 টির বেশি অক্ষরের স্ট্রিং এই কোডে আপ্যায়ন করা যাবে না। এর পরে, আমরা দুটি পূর্ণসংখ্যা-টাইপ ভেরিয়েবল ঘোষণা করেছি। ভেরিয়েবল l একটি স্ট্রিং str এর দৈর্ঘ্য সংগ্রহের জন্য ব্যবহার করা হয়েছে এবং, ভেরিয়েবল আমি লুপের জন্য একটি প্রারম্ভিক হিসাবে ব্যবহার করা হবে। তারপরে আমরা শেল এন্টার স্ট্রিংয়ে একটি টেক্সট প্রিন্ট করার জন্য একটি printf স্টেটমেন্ট ব্যবহার করেছি, একটি ব্যবহারকারীকে একটি স্ট্রিং ভেরিয়েবলে একটি মান যোগ করতে বলে। স্ক্যানফ () পদ্ধতি ব্যবহারকারীর রান টাইমে ইনপুট করার জন্য এবং সেই মানটিকে স্ট্রিং স্ট্রিং -এ সংরক্ষণ করতে ব্যবহার করা হয়েছে। ফাংশন strlen () ব্যবহার করা হয়েছে একটি স্ট্রিং স্ট্রের দৈর্ঘ্য যা ব্যবহারকারীর দ্বারা রান টাইমে যোগ করা হয়েছে এবং এটি একটি ভেরিয়েবল l ’তে সংরক্ষণ করতে ব্যবহৃত হয়েছে। তারপর আমরা স্ট্রিং str বিপরীত করার জন্য একটি লুপ জন্য আরম্ভ। আপনি দেখতে পারেন যে প্রারম্ভিক I 'একটি ভেরিয়েবল থেকে মান গ্রহণ করছে একটি স্ট্রিং এর দিক বিপরীত করতে। তারপরে এটি একটি স্ট্রিং str এর অক্ষরগুলিকে একের পর এক উল্টে দেয়। শেষ পর্যন্ত, মূল পদ্ধতিটি শেষ হয়েছে। Ctrl+S ব্যবহার করে এই ফাইলটি সংরক্ষণ করুন এবং Ctrl+X এর মাধ্যমে এটি ছেড়ে দিন।

এখন সময় এসেছে কোডটি কম্পাইল করার এবং এর আউটপুট চেক করার। অতএব, সংকলনটি নীচের বিবৃত gcc ক্যোয়ারী দ্বারা একটি ফাইলের নাম দিয়ে করা হয়েছে new.c.

$ gcc নতুন।

যেহেতু সংকলন সফল হয়, তার মানে আমাদের কোডে কোন ত্রুটি নেই। আসুন শেলের মধ্যে a.out ক্যোয়ারী দ্বারা আমাদের ফাইলটি সম্পাদন করি:

$/প্রতি.বাইরে

এক্সিকিউশন প্রক্রিয়া ব্যবহারকারীকে একটি স্ট্রিং যোগ করতে বলবে। আমরা আই-আম-আকসা-ইয়াসিন যুক্ত করেছি এবং এন্টার চাপছি। আপনি দেখতে পারেন এটি নিচের লাইনে একটি স্ট্রিং এর বিপরীত ফিরে আসে।

উদাহরণ 02: সোয়াপিং ব্যবহার করে

এই উদাহরণে, আমরা একটি স্ট্রিং এর ক্রম বিপরীত করতে অদলবদল পদ্ধতি ব্যবহার করব। অতএব, ন্যানো এডিটর ব্যবহার করে ফাইলটি আবার খুলুন:

$ nano নতুন।

এখন ফাইলটি GNU ন্যানো এডিটরে খোলা হয়েছে; আমাদের স্ক্রিনশটে নিচের দেখানো স্ক্রিপ্ট সহ কোড ফাইল আপডেট করতে হবে। আমরা প্রথমে একটি কোড #include ব্যবহার করে আমাদের কোডে স্ট্যান্ডার্ড ইনপুট এবং আউটপুট হেডার ফাইল অন্তর্ভুক্ত করেছি। সোয়াপিং টেকনিকের ব্যবহার অনুযায়ী আমরা একটি পদ্ধতি রিভার্স () নির্ধারণ করেছি। আমরা তিনটি পূর্ণসংখ্যা টাইপ ভেরিয়েবল নতুন, I এবং সোয়াপ শুরু করেছি। স্ট্রিং গুলি ফাঁকা কিনা তা পরীক্ষা করার জন্য প্রথম লুপ ব্যবহার করা হয়। লুপের জন্য পরবর্তীটি পুনরাবৃত্তির জন্য ব্যবহৃত হয় এবং এর শরীরে আমরা নতুন এবং সোয়াপ ভেরিয়েবল ব্যবহার করে মানগুলি বদল করেছি। এটি লক্ষণীয় যে একটি n- দৈর্ঘ্যের স্ট্রিংকে উল্টাতে মাত্র n/2 রাউন্ড লাগে। একবার স্ট্রিং অদলবদল হয়ে গেলে, উল্টানো স্ট্রিংটি দেখানোর জন্য আপনাকে আবার লুপ করতে হবে, যা আমরা আমাদের অ্যাপ্লিকেশনের মধ্যে লুপের জন্য তৃতীয় ব্যবহার করে করি। ফাংশন বিপরীত () ভিতরের প্রধান প্রোগ্রাম থেকে বলা আবশ্যক। আপনি আপনার সফ্টওয়্যারটি মুখ্য () প্রেক্ষাপটে printf দিয়ে কী করে তা বলে দিয়েছেন। এর পরে, আপনি ব্যবহারকারীর ইনপুট পেতে scanf () ব্যবহার করেছেন এবং রিভার্স () পদ্ধতি চালু করেছেন। এখন Ctrl+S ব্যবহার করে ফাইলটি আবার সেভ করুন এবং Ctrl+X শর্টকাট দিয়ে ন্যানো এডিটর ছেড়ে টার্মিনাল শেল -এ ফিরে আসুন।

নীচের মত একটি gcc ক্যোয়ারী দ্বারা প্রথমে কোডটি কম্পাইল করুন।

$ gcc নতুন।

এখন কোড ফাইলটি একই ./a.out নির্দেশনাটি চালান।

$/প্রতি.বাইরে

এটি আপনাকে স্ট্রিং মান লিখতে বলবে। আমরা AqsaYasin যোগ করেছি এবং তার বিপরীত পেয়েছি।

উদাহরণ 03: পুনরাবৃত্তি ব্যবহার করে

এই উদাহরণে, আমরা ব্যবহারকারীর যোগ করা একটি স্ট্রিং বিপরীত করতে পুনরাবৃত্তি ব্যবহার করব। অতএব ফাইলটি আবার খুলুন।

$ nano নতুন।

এই প্রোগ্রামটি প্রিন্ট করে একটি বাক্য লিখুন: একটি বিপরীত () পদ্ধতি তখন ব্যবহার করা হয়। একটি ব্যবহারকারী দ্বারা লিখিত প্রাথমিক চিঠি এই পদ্ধতিতে c এ সংরক্ষিত হয়। বিপরীত () আবার কার্যকর করা হয় যদি যুক্তিটি n (নতুন লাইন) ছাড়া অন্য কিছু হয়। এই প্রক্রিয়া চলতে থাকে যতক্ষণ না ব্যবহারকারী Enter কী টিপেন। যখনই ব্যবহারকারী এন্টার টিপবে, বিপরীত () পদ্ধতিটি পাঠ্যটিকে বিপরীত ক্রমে মুদ্রণ করবে। সংরক্ষণ করুন এবং ফাইলটি বন্ধ করুন।

প্রথমে কোডটি কম্পাইল করুন এবং তারপরে পূর্ববর্তী কমান্ডগুলি ব্যবহার করে এটি চালান:

$ gcc নতুন।

$/প্রতি.বাইরে

আপনি দেখতে পারেন যে এটি একটি ব্যবহারকারীর কাছ থেকে একটি সম্পূর্ণ স্ট্রিং বাক্য হিসাবে ইনপুট নেয় এবং তারপরে সেই বাক্যের ক্রমটি উল্টে দেয়।

উপসংহার:

পরিশেষে, আমরা বিভিন্ন পদ্ধতিতে স্ট্রিং টাইপ ইনপুট বিপরীত করার জন্য তিনটি উদাহরণ দিয়েছি, যেমন, লুপ ব্যবহার করা, পুনরাবৃত্তি ব্যবহার করা এবং সোয়াপ ব্যবহার করা।