কিভাবে C ++ স্ট্রিং লিটারাল ব্যবহার করবেন

How Use C String Literal



কম্পিউটার কীবোর্ডে অক্ষর মুদ্রিত আছে। যখন আপনি একটি কী চাপেন, আপনি পর্দায় চরিত্রটি দেখতে পান। দ্রষ্টব্য: স্থানও একটি অক্ষর। একটি স্ট্রিং আক্ষরিক অক্ষরের একটি ক্রম। এই নিবন্ধটি ব্যাখ্যা করে কিভাবে C ++ স্ট্রিং লিটারেল ব্যবহার করতে হয়। এই নিবন্ধটি বুঝতে আপনার C ++ অ্যারে এবং পয়েন্টার সম্পর্কে জানা উচিত।

চরিত্র আক্ষরিক

একটি অক্ষর আক্ষরিক একক উদ্ধৃতি একটি চরিত্র। সুতরাং,







গৃহস্থালিপরিচয় 1= 'প্রতি'; গৃহস্থালিপরিচয় 2= 'খ'; গৃহস্থালিপরিচয় 3= '4'; গৃহস্থালিপরিচয় 4= '6';

অক্ষরের সব আলাদা সংজ্ঞা। লক্ষ্য করুন যে একক উদ্ধৃতিতে একটি সংখ্যা একটি অক্ষর এবং পূর্ণসংখ্যা নয়।



একটি পালানোর ক্রম যেমন single (নিচে দেখুন) একক উদ্ধৃতিতে, একটি চরিত্র। সুতরাং,



গৃহস্থালিপরিচয় 1= '' ';

একটি চরিত্র।





দ্বি-উদ্ধৃতিতে একটি একক প্রতীক একটি অক্ষর নয়; এটি একটি অক্ষরের একটি স্ট্রিং। সুতরাং A বা c বা 2 একটি অক্ষর নয় বরং প্রতিটি অক্ষরের একটি স্ট্রিং।

একটি গৃহস্থালীর পরিবর্তনশীলতা পুনরায় নিযুক্ত করা যেতে পারে, পরে প্রোগ্রামে নিচে দেওয়া হল:



গৃহস্থালিপরিচয়= 'এক্স';
পরিচয়= 'এবং';

শনাক্তকারীকে নির্ধারিত একটি চরিত্রকে পরিবর্তন করা থেকে বিরত রাখতে, পরে প্রোগ্রামে নিচে, সংরক্ষিত শব্দ, সংজ্ঞা দিয়ে সংজ্ঞার পূর্বে নিম্নরূপ:

const গৃহস্থালিপরিচয়= 'ডি';

ভেরিয়েবল, আইডেনটি কেবল পঠনযোগ্য বলে বলা হয়।

স্ট্রিং লিটারাল

একটি স্ট্রিং আক্ষরিক ডাবল উদ্ধৃতিতে অক্ষরের একটি ক্রম। সুতরাং,

গৃহস্থালিপরিচয় 1[] = 'আমি তোমাকে ভালোবাসি'; গৃহস্থালিপরিচয় 2[] = 'আমি তোমাদের তিনজনকে ঘৃণা করি'; গৃহস্থালিপরিচয় 3[]
= 'আমরাই বিশ্ব'; গৃহস্থালিপরিচয় 4[] = 'ওহে বিশ্ব!';

স্ট্রিং লিটারালের সব আলাদা সংজ্ঞা। ডাবল কোট ব্যবহার লক্ষ্য করুন। একটি স্ট্রিং এর জন্য সাধারণ ভেরিয়েবলের মত কিছুই নেই। একটি স্ট্রিং আক্ষরিক হল অক্ষরের একটি অ্যারে, যেখানে {} দিয়ে সীমাবদ্ধ করার পরিবর্তে, ক্রমটি সীমাবদ্ধ করা হয়। অক্ষরগুলি কমা দ্বারা পৃথক করা হয় না। স্ট্রিং আক্ষরিক অক্ষরের সংখ্যার চেয়ে বড় যেকোনো সংখ্যা বর্গাকার বন্ধনীতে স্থাপন করা যেতে পারে। যাইহোক, বর্গাকার বন্ধনী খালি রাখা ভাল।

দ্বি-উদ্ধৃতিতে একক অক্ষর একটি চরিত্র নয়; এটি একটি অক্ষরের একটি স্ট্রিং। সুতরাং A বা c বা 2 একটি অক্ষর নয়, কিন্তু প্রতিটি অক্ষরের একটি স্ট্রিং।

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

অক্ষর বা আক্ষরিক একক এবং দ্বৈত উদ্ধৃতি

একটি চরিত্র হিসাবে একক উদ্ধৃতি পেতে, এর মতো কিছু করুন,

গৃহস্থালিপরিচয়= ''';

একটি স্ট্রিং আক্ষরিক একটি অক্ষর হিসাবে একটি ডবল উদ্ধৃতি আছে, মত কিছু করুন,

গৃহস্থালিপরিচয়[] = 'দূরে'সিডি';

ডিলিমিটারের সাথে দ্বন্দ্ব এড়াতে ব্যাকস্ল্যাশ একটি পালানোর ক্রমে ব্যবহৃত হয়। একটি চরিত্র হিসাবে একটি দ্বিগুণ উদ্ধৃতি পেতে, ব্যাকস্ল্যাশের কোন প্রয়োজন নেই: '' ঠিক আছে। একটি স্ট্রিং আক্ষরিক একটি একক উদ্ধৃতি, ব্যাকস্ল্যাশ কোন প্রয়োজন নেই: ab’cd ঠিক আছে।

যেহেতু ব্যাকস্ল্যাশ একটি অক্ষর পালানোর জন্য ব্যবহৃত হয়, তাই এটি একটি চরিত্র হিসাবে বা একটি স্ট্রিং আক্ষরিক হিসাবে ব্যবহৃত হলে অন্য ব্যাকস্ল্যাশ দিয়ে পালাতে হবে।

পালানোর ক্রম

একটি পালানোর ক্রম হল:

''? প্রতি n আর> টি v

প্রতিটি পালানোর ক্রম সাধারণত একক উদ্ধৃতিগুলির মধ্যে একটি অক্ষর হিসাবে বা ডাবল-উদ্ধৃতিগুলির মধ্যে একটি পালানোর ক্রম হিসাবে টাইপ করা হয়।

  • ’: একক উদ্ধৃতি অক্ষর হিসেবে ব্যবহৃত হয়, একক উদ্ধৃতির মধ্যে।
  • : একটি আক্ষরিক মধ্যে একটি ডবল উদ্ধৃতি অক্ষর হিসাবে ব্যবহৃত হয়।
  • ? : থেকে ? এটি একটি সংরক্ষিত অক্ষর, এটি একটি আক্ষরিকভাবে পালিয়ে যাওয়া উচিত।
  • : ব্যাকস্ল্যাশকে একটি অক্ষর হিসাবে বা একটি স্ট্রিং আক্ষরিকভাবে পালিয়ে যেতে হবে, যাতে অন্য কোন অর্থ না হয়।
  • a: একবার একটি অ্যালার্ম বেল শোনায়, যখন একটি অক্ষর হিসাবে বা একটি স্ট্রিং আক্ষরিক মধ্যে ব্যবহার করা হয়।
  • b: একটি স্ট্রিং আক্ষরিক মধ্যে ডিসপ্লেতে একটি ব্যাকস্পেস হিসাবে ফলাফল, পূর্ববর্তী অক্ষর বন্ধ করে।
  • f: অক্ষর হিসেবে বা আক্ষরিক অর্থে ব্যবহৃত হলে পরবর্তী পৃষ্ঠাটি প্রিন্টারে খাওয়ানো হয়।
  • r: কার্সার ফেরত দেয়, যেখানে পরবর্তী অক্ষর মুদ্রণ করা হবে, কিন্তু বর্তমান লাইনের মধ্যে।
  • operating n: অপারেটিং সিস্টেমের উপর নির্ভর করে কার্সারটি পরবর্তী লাইনের শুরুতে বা ঠিক পরবর্তী লাইনে ফেরত দেয়।
  • t: একটি অনুভূমিক ট্যাব তৈরি করে।
  • v: একটি উল্লম্ব ট্যাব তৈরি করে।

অক্ষর সঙ্গে অপারেশন

সংযোজন

সংজ্ঞা অনুসারে, দুটি স্ট্রিং লিটারাল স্পেসের সাথে নিম্নরূপ যুক্ত হতে পারে:

গৃহস্থালিপরিচয়[] = 'abc' 'ডিফ';
খরচ<<পরিচয়<< 'n';

আউটপুট হল: abcdef। এই সংজ্ঞাটি দুইটির বেশি আক্ষরিক অর্থে বিস্তৃত হতে পারে। দ্রষ্টব্য: বিবৃতিটি একটি সংজ্ঞা, কেবল একটি নিয়োগ নয়। সংজ্ঞাটি নিম্নরূপ লাইনগুলিকে পৃথক করে স্থান দিয়ে পরবর্তী লাইনেও চালিয়ে যেতে পারে:

গৃহস্থালিপরিচয়[] = 'abc' 'ডিফ'
'নোট নাও';
খরচ<<পরিচয়<< 'n';

আউটপুট হল, abcdefghi।

দ্রষ্টব্য: অক্ষরগুলি এইভাবে সংযুক্ত করা যাবে না, কারণ চরিত্রের একক উদ্ধৃতিতে একাধিক চিহ্ন থাকতে পারে না।

সমতা অপারেটর

একই ক্ষেত্রে একই অক্ষর সমান। তারা একই ক্ষেত্রে না হলে তারা সমান নয়। বিবেচনা,

বুল ফলাফল= 'খ' == 'খ';
খরচ<<ফলাফল<< 'n';

== মানে সমান, যখন = অর্থ বরাদ্দ করা হয়েছে এবং সমান নয়। সত্যের জন্য আউটপুট 1। বিবেচনা,

বুল ফলাফল= 'খ' == 'খ';
খরচ<<ফলাফল<< 'n';

আউটপুট মিথ্যা জন্য 0। বিবেচনা,

বুল ফলাফল= 'খ' == 'গ';
খরচ<<ফলাফল<< 'n';

আউটপুট মিথ্যা জন্য 0। বিবেচনা,

বুল ফলাফল= 'খ' ! = 'খ';
খরচ<<ফলাফল<< 'n';

! = মানে না-সমান, যখন = অর্থ বরাদ্দ করা-না এবং সমান নয়। আউটপুট মিথ্যা জন্য 0। বিবেচনা,

বুল ফলাফল= 'খ' ! = 'খ';
খরচ<<ফলাফল<< 'n';

সত্যের জন্য আউটপুট 1। বিবেচনা,

বুল ফলাফল= 'খ' ! = 'গ';
খরচ<<ফলাফল<< 'n';

সত্যের জন্য আউটপুট 1।

সুতরাং, == এবং! = সমতা অপারেটর।

রিলেশনাল অপারেটর

C ++ এ সাধারণ অক্ষরের জন্য, আরোহী ক্রমে, সংখ্যাগুলি বড় হাতের অক্ষরের আগে আসে, যা ছোট হাতের অক্ষরের আগে আসে।

তাই= একইভাবে ব্যাখ্যা করা হয়েছে।

একটি বস্তু হিসাবে স্ট্রিং লিটারাল

অ্যারে একটি নির্দিষ্ট ডাটা টাইপ ক্রমের শুরুতে একটি ধ্রুবক নির্দেশক। একইভাবে, স্ট্রিং একটি অক্ষর ক্রমের শুরুতে একটি ধ্রুবক নির্দেশক। নিম্নলিখিত সংজ্ঞা তুলনা করুন:

intআগমন[] = {3, 4, 5, 6, 7};
গৃহস্থালিপৃ[] = {'ভিতরে', 'অথবা', 'মি', 'প্রতি', 'এন'};
গৃহস্থালিstri[] = 'নারী';

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

arr হল তার অ্যারের প্রথম উপাদানটির একটি ধ্রুবক নির্দেশক, যার মানে হল, এরি পূর্ণসংখ্যা থাকা অবস্থানের দিকে সর্বদা নির্দেশ করবে, এমনকি যদি 3 এর মান পরিবর্তিত হয়। অ্যারের আকার, পাঁচটি উপাদান, সত্যিই স্থির থাকে না। যাইহোক, অ্যারের প্রতিটি মান পরিবর্তন করা যেতে পারে।

str হল তার অ্যারের প্রথম উপাদানটির একটি ধ্রুবক নির্দেশক, যার অর্থ হল str সবসময় অক্ষরযুক্ত অবস্থানের দিকে নির্দেশ করবে, এমনকি 'w' এর মান পরিবর্তিত হলেও। অক্ষর অ্যারের আকার, পাঁচটি উপাদান, সত্যিই স্থির থাকে না। যাইহোক, আক্ষরিক প্রতিটি মান পরিবর্তন করা যেতে পারে।

স্ট্রি তার আক্ষরিক (অ্যারে) প্রথম উপাদানটির একটি ধ্রুবক নির্দেশক, যার অর্থ হল স্ট্রি সবসময় অক্ষরযুক্ত অবস্থানের দিকে নির্দেশ করবে, এমনকি w এর মান পরিবর্তিত হলেও। স্ট্রিং আক্ষরিক (অ্যারে) আকার, পাঁচটি উপাদান, সত্যিই ধ্রুবক থাকে না। যাইহোক, আক্ষরিক প্রতিটি মান পরিবর্তন করা যেতে পারে।

একটি অ্যারে বা স্ট্রিং আক্ষরিক ধ্রুবক কি? অ্যারে বা আক্ষরিক প্রথম উপাদানটির মেমরি ঠিকানাটি অ্যারে বা আক্ষরিক নাম (শনাক্তকারী) এর মান হিসাবে রয়ে গেছে এবং পরিবর্তন করা যাবে না। ঠিক আছে, অ্যারে বা আক্ষরিক আকার সত্যিই ধ্রুবক থাকে না। অ্যারে বা আক্ষরিক প্রতিটি মান পরিবর্তন করা যেতে পারে। নিচের কোডটি দেখায় কিভাবে প্রতিটি অ্যারের চতুর্থ উপাদান পরিবর্তন করা হয়েছে:

intআগমন[] = {3, 4, 5, 6, 7};
গৃহস্থালিপৃ[] = {'ভিতরে', 'অথবা', 'মি', 'প্রতি', 'এন'};
গৃহস্থালিstri[] = 'নারী';

আগমন[3] = 9;
পৃ[3] = 'এবং';
stri[3] = 'এবং';

খরচ<<আগমন[3] << 'n';
খরচ<<পৃ<< 'n';
খরচ<<stri<< 'n';

আউটপুট হল:

9
মহিলা মহিলা
নারী

লক্ষ্য করুন যে একটি সংজ্ঞায়িত স্ট্রিং আক্ষরিক উপাদান, যেমন উপরের তৃতীয় সংজ্ঞাটির জন্য, অ্যারে সূচক (সাবস্ক্রিপ্ট) দিয়ে অ্যাক্সেস করা যেতে পারে। আউটপুটের দ্বিতীয় লাইনের কারণ নিচে দেওয়া হল।

সংজ্ঞা সাবস্ক্রিপ্ট

লক্ষ্য করুন যে উপরের সংজ্ঞাগুলিতে সাবস্ক্রিপ্টের জন্য কোন পূর্ণসংখ্যা নেই। যখন উপাদানগুলির সংখ্যা সহজে নির্ধারণ করা যায় না, তখন প্রোগ্রামার দ্বারা সাবস্ক্রিপ্টের পূর্ণসংখ্যা বাদ দেওয়া উচিত। যাই হোক না কেন, পূর্ণসংখ্যা অ্যারের উপাদানগুলির সংখ্যার চেয়ে কম হওয়া উচিত নয়।

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

intআগমন[5] = {3, 4, 5, 6, 7};
গৃহস্থালিপৃ[5] = {'ভিতরে', 'অথবা', 'মি', 'প্রতি', 'এন'};
গৃহস্থালিstri[6] = 'নারী';

দ্বিতীয় সংজ্ঞাটিকে একটি সরকারী স্ট্রিং করার জন্য, শূন্য অক্ষরটি নিম্নরূপ যুক্ত করতে হবে:

intআগমন[5] = {3, 4, 5, 6, 7};
গৃহস্থালিপৃ[6] = {'ভিতরে', 'অথবা', 'মি', 'প্রতি', 'এন', ' 0'};
গৃহস্থালিstri[6] = 'নারী';

আউটপুট এখন হতে হবে,

9
নারী
নারী

দ্বিতীয় নারী ছাড়া। মনে রাখবেন যে দ্বিতীয় অ্যারের জন্য সংশ্লিষ্ট সাবস্ক্রিপ্ট 6, এবং 5 এর মতো নয়।

ধ্রুব আক্ষরিক মান

শনাক্তকারীকে নির্ধারিত দ্বিগুণ উদ্ধৃতিতে কোন অক্ষরকে সংশোধন করা থেকে বিরত রাখতে, পরে প্রোগ্রামে নিচে, সংরক্ষিত শব্দ, সংজ্ঞা দিয়ে সংজ্ঞাটির পূর্বে নিম্নরূপ:

const গৃহস্থালিপরিচয়[] = 'আমি তোমাকে ভালোবাসি';

স্ট্রিং লিটারাল দিয়ে অপারেশন

সমতা কার্যক্রম

সমতা অপারেটর হল == এবং! =। যখন দুটি স্ট্রিংয়ের ভেরিয়েবল (শনাক্তকারী) তুলনা করা হয়, তখন এটি লিটারালগুলির পয়েন্টার (ঠিকানা) যা তুলনা করা শেষ হয়; এটা ভুল। স্ট্রিং তুলনা করতে, আক্ষরিক তুলনা করতে হবে, যেমন নিম্নলিখিত কোডে:

বুল ফলাফল= 'নারী' == 'নারী';
খরচ<<ফলাফল<< 'n';

সত্যের জন্য আউটপুট 1। তুলনা ডিকশনারি ফ্যাশনে করা হয়, কিন্তু সংখ্যাগুলি ক্রমবর্ধমান ক্রমে, বড় হাতের অক্ষরের আগে, যা ছোট হাতের অক্ষরের আগে আসে। নিম্নলিখিত কোডের আউটপুট 0, মিথ্যা জন্য।

বুল ফলাফল= 'নারী' ! = 'নারী';
খরচ<<ফলাফল<< 'n';

স্ট্রিং লিটারেল সহ রিলেশনাল অপারেটর

রিলেশনাল অপারেটররা স্ট্রিং লিটারেল দিয়ে কাজ করে না।

কাঁচা স্ট্রিং লিটারাল

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

গৃহস্থালিপৃ[] =আর'(এবিসিd efg সে
klmnn'
'opq
rst) ';
খরচ<< str << '
n';

আউটপুট হল:

abc \ d efg he
klmn। nopq
প্রথম

কোডে, কাঁচা স্ট্রিং আক্ষরিক আর দিয়ে শুরু হয়, এর পরে এবং (। এটি দিয়ে শেষ হয়) এবং।

C ++ প্রধান স্ট্রিং আক্ষরিক প্রকার

গৃহস্থালি

গৃহস্থালি টাইপটি আসল সি ++ টাইপ এবং সাধারণত একটি অক্ষর 8 বিটে সংরক্ষণ করে।

char16_t

এটি 16 বিটে একটি অক্ষর সঞ্চয় করে।

char32_t

এটি 32 বিটে একটি অক্ষর সঞ্চয় করে।

wchar_t

char16_t এবং char32_t হল বিস্তৃত অক্ষর। wchar_t একটি বিস্তৃত চরিত্র যা মালিকানা এবং বাস্তবায়ন-সংজ্ঞায়িত।

উপসংহার

একটি অক্ষর আক্ষরিক একক উদ্ধৃতি একক অক্ষর। একটি পালানোর ক্রম একটি চরিত্র যা একক উদ্ধৃতিতেও হতে পারে। একটি স্ট্রিং আক্ষরিক ডাবল-উদ্ধৃতিতে অক্ষরের একটি ক্রম। একটি স্ট্রিং আক্ষরিক অক্ষরের একটি অ্যারে যা 0 দিয়ে শেষ হয়। সমতা এবং রিলেশনাল অপারেটরগুলি অক্ষর লিটারেলগুলির সাথে কাজ করে। সমতা অপারেটররা স্ট্রিং লিটারেল দিয়ে কাজ করে, কিন্তু রিলেশনাল অপারেটররা স্ট্রিং লিটারেল দিয়ে কাজ করে না। ক্যারেক্টার আইডেন্টিফায়ার তুলনা করতে ব্যবহার করা যেতে পারে, কিন্তু স্ট্রিং আইডেন্টিফায়ার তুলনাতে ব্যবহার করা উচিত নয়। একটি কাঁচা স্ট্রিং আক্ষরিক একটি স্ট্রিংকে টাইপ করা হিসাবে দেখানোর অনুমতি দেয়, পালানোর ক্রম উপেক্ষা করে এবং নতুন লাইনগুলিকে সম্মান করে।

ক্রিস