সি তে স্ট্রিং: কিভাবে ভেরিয়েবল ডিক্লেয়ার করবেন, ইনিশিয়ালাইজ করুন, প্রিন্ট করুন, উদাহরণ

C তে স্ট্রিং কি?

প্রতি সি মধ্যে স্ট্রিং একটি রৈখিক অনুক্রমের অক্ষরের সংগ্রহ ছাড়া আর কিছুই নয়। 'সি' সর্বদা একটি স্ট্রিংকে একটি একক ডেটা বলে মনে করে যদিও এতে সাদা স্থান রয়েছে। একটি একক অক্ষর একক উদ্ধৃতি উপস্থাপনা ব্যবহার করে সংজ্ঞায়িত করা হয়। ডাবল কোট চিহ্ন ব্যবহার করে একটি স্ট্রিং উপস্থাপন করা হয়। | _+_ |

'সি' স্ট্যান্ডার্ড লাইব্রেরি সরবরাহ করে যাতে অনেকগুলি ফাংশন থাকে যা সি -তে স্ট্রিংগুলিতে সহজেই জটিল অপারেশন করতে ব্যবহার করা যেতে পারে।

এই টিউটোরিয়ালে আপনি শিখবেন-

সি -তে একটি স্ট্রিং কীভাবে ঘোষণা এবং সূচনা করবেন

একটি সি স্ট্রিং হল একটি সাধারণ অ্যারে যার সাথে একটি ডেটা টাইপ হিসেবে চর আছে। 'সি' ভাষা সরাসরি ডাটা টাইপ হিসেবে স্ট্রিং সমর্থন করে না। অতএব, C এ একটি স্ট্রিং প্রদর্শন করতে, আপনাকে একটি অক্ষর অ্যারের ব্যবহার করতে হবে।

C- এ একটি স্ট্রিং হিসেবে একটি ভেরিয়েবল ঘোষণার সাধারণ বাক্য গঠন নিম্নরূপ, | _+_ |

স্ট্রিং এর ক্লাসিক ডিক্লারেশন নিম্নরূপ করা যেতে পারে: | _+_ |

একটি C স্ট্রিং ভেরিয়েবল ঘোষণার সময় একটি অ্যারের সাইজ সংজ্ঞায়িত করা আবশ্যক কারণ এটি সি -তে স্ট্রিং ভেরিয়েবলের ভিতরে কতগুলি অক্ষর সংরক্ষণ করা হবে তা গণনা করতে ব্যবহৃত হয়। স্ট্রিং ডিক্লারেশনের কিছু বৈধ উদাহরণ নিম্নরূপ,

উপরের উদাহরণটি 15 এর একটি অ্যারে আকারের স্ট্রিং ভেরিয়েবলকে উপস্থাপন করে। এর অর্থ হল যে প্রদত্ত সি স্ট্রিং অ্যারে সর্বাধিক 15 টি অক্ষর ধারণ করতে সক্ষম। অ্যারের সূচী 0 থেকে শুরু হয় তাই এটি 0-14 অবস্থান থেকে অক্ষর সংরক্ষণ করবে। C কম্পাইলার স্বয়ংক্রিয়ভাবে একটি অক্ষর ' 0' তৈরি করা অক্ষর অ্যারে যোগ করে।

আসুন সি তে স্ট্রিং ইনিশিয়ালাইজেশন অধ্যয়ন করি।

স্ট্রিং 3 -এ, শূন্য অক্ষর স্পষ্টভাবে যুক্ত করতে হবে এবং অক্ষরগুলি একক উদ্ধৃতি চিহ্নের মধ্যে আবদ্ধ।

'সি' আমাদের অক্ষর অ্যারের আকার নির্ধারণ না করে একটি স্ট্রিং ভেরিয়েবল শুরু করতে দেয়। এটি নিম্নলিখিত উপায়ে করা যেতে পারে, | _+_ |

C তে Strings এর নাম পয়েন্টার হিসেবে কাজ করে কারণ এটি মূলত একটি অ্যারে।

স্ট্রিং ইনপুট: একটি স্ট্রিং পড়ুন

ইন্টারেক্টিভ প্রোগ্রাম লেখার সময় যা ব্যবহারকারীকে ইনপুটের জন্য জিজ্ঞাসা করে, C ব্যবহারকারী থেকে প্রবেশ করা পাঠ্যের একটি লাইন খুঁজে পেতে scanf (), gets () এবং fgets () ফাংশন প্রদান করে।

যখন আমরা স্ক্যানফ () পড়ার জন্য ব্যবহার করি, আমরা ভেরিয়েবল অ্যাড্রেস অ্যাক্সেস করতে '&' ব্যবহার না করে '%s' ফর্ম্যাট স্পেসিফায়ার ব্যবহার করি কারণ একটি অ্যারের নাম পয়েন্টার হিসাবে কাজ করে। উদাহরণস্বরূপ: | _+_ |

আউটপুট: | _+_ |

স্ক্যানফ ফাংশনের সমস্যা হল এটি সি -তে পুরো স্ট্রিংগুলি পড়ে না। ধরুন আমরা 'গুরু 99 টিউটোরিয়াল' হিসেবে ইনপুট দিই তাহলে স্ক্যানফ ফাংশন কখনই পুরো স্ট্রিং পড়বে না কারণ দুটি নামের মধ্যে একটি হোয়াইটস্পেস অক্ষর ঘটে। Scanf ফাংশন শুধুমাত্র Guru99 পড়বে।

একটি স্ট্রিং পড়ার জন্য স্পেস রয়েছে, আমরা get () ফাংশন ব্যবহার করি। হোয়াইটস্পেস উপেক্ষা করে। একটি নতুন লাইন পৌঁছালে এটি পড়া বন্ধ হয়ে যায় (এন্টার কী টিপানো হয়) উদাহরণস্বরূপ: | _+_ |

আউটপুট: | _+_ |

আরেকটি নিরাপদ বিকল্প হল fgets () ফাংশন যা একটি নির্দিষ্ট সংখ্যক অক্ষর পড়ে। উদাহরণস্বরূপ: | _+_ |

আউটপুট: | _+_ |

Fgets () আর্গুমেন্ট হল:

  • স্ট্রিং নাম,
  • পড়া অক্ষরের সংখ্যা,
  • stdin মানে স্ট্যান্ডার্ড ইনপুট থেকে পড়া যা কীবোর্ড।

স্ট্রিং আউটপুট: একটি স্ট্রিং মুদ্রণ/প্রদর্শন করুন

স্ট্যান্ডার্ড প্রিন্টফ ফাংশনটি আউটপুট ডিভাইসে সি -তে স্ট্রিং প্রিন্ট বা প্রদর্শনের জন্য ব্যবহৃত হয়। ব্যবহৃত ফরম্যাট স্পেসিফায়ার হল %s

উদাহরণ, | _+_ |

স্ট্রিং আউটপুট fputs () এবং printf () ফাংশন দিয়ে সম্পন্ন করা হয়।

fputs () ফাংশন

Fputs () স্ট্রিং এর নাম এবং একটি পয়েন্টার প্রয়োজন যেখানে আপনি পাঠ্য প্রদর্শন করতে চান। আমরা stdout ব্যবহার করি যা স্ক্রিনে প্রিন্ট করার জন্য স্ট্যান্ডার্ড আউটপুট বোঝায়। উদাহরণস্বরূপ: | _+_ |

আউটপুট: | _+_ |

ফাংশন রাখে

Puts ফাংশনটি একটি আউটপুট ডিভাইসে C তে স্ট্রিং প্রিন্ট করতে এবং কার্সারটিকে প্রথম অবস্থানে ফিরিয়ে আনতে ব্যবহৃত হয়। একটি puts ফাংশন নিম্নলিখিত উপায়ে ব্যবহার করা যেতে পারে, | _+_ |

এই ফাংশনের সিনট্যাক্স অন্যান্য ফাংশনের তুলনায় তুলনামূলকভাবে সহজ।

স্ট্রিং লাইব্রেরি

স্ট্যান্ডার্ড 'সি' লাইব্রেরি একটি প্রোগ্রামের মধ্যে স্ট্রিংগুলি ম্যানিপুলেট করার জন্য বিভিন্ন ফাংশন সরবরাহ করে। এই ফাংশনগুলিকে স্ট্রিং হ্যান্ডলারও বলা হয়। এই সমস্ত হ্যান্ডলার হেডার ফাইলের ভিতরে উপস্থিত।

ফাংশন উদ্দেশ্য
strlen () এই ফাংশনটি একটি স্ট্রিং এর দৈর্ঘ্য খোঁজার জন্য ব্যবহৃত হয়। এটি শূন্য অক্ষর বাদে একটি স্ট্রিংয়ে কতগুলি অক্ষর উপস্থিত রয়েছে তা প্রদান করে।
strcat (str1, str2) এই ফাংশনটি দুটি স্ট্রিংকে একত্রিত করে একটি স্ট্রিং গঠনের জন্য ব্যবহৃত হয়। এটি str1 এর শেষে str2 যুক্ত করে বা সংযুক্ত করে এবং str1 এ একটি পয়েন্টার প্রদান করে।
strcmp (str1, str2) এই ফাংশনটি দুটি স্ট্রিংকে একে অপরের সাথে তুলনা করতে ব্যবহৃত হয়। যদি str1 str2 এর সমান হয়, 0 থেকে কম হলে str1 str2 হলে এটি 0 প্রদান করে।

নীচের প্রোগ্রামটি বিবেচনা করুন যা স্ট্রিং লাইব্রেরি ফাংশন প্রদর্শন করে: | _+_ |

আউটপুট: | _+_ |

অন্যান্য গুরুত্বপূর্ণ গ্রন্থাগার ফাংশন হল:

  • strncmp (str1, str2, n): str1- এর প্রথম n অক্ষর str2- এর প্রথম n অক্ষরের সমান হলে 0 হয়, যদি str1 str2 হয় তাহলে 0 থেকে কম।
  • strncpy (str1, str2, n) এই ফাংশনটি অন্য স্ট্রিং থেকে একটি স্ট্রিং কপি করতে ব্যবহৃত হয়। Str2 এর প্রথম n অক্ষরগুলিকে str1 এ অনুলিপি করে
  • strchr (str1, c): এটি অক্ষর না পাওয়া গেলে অক্ষর c এর প্রথম ঘটনার জন্য একটি নির্দেশক প্রদান করে, অথবা NULL।
  • strrchr (str1, c): এটি বিপরীত দিকে str1 অনুসন্ধান করে এবং অক্ষর না পাওয়া গেলে অক্ষর c এর অবস্থানে একটি নির্দেশক প্রদান করে।
  • strstr (str1, str2): এটি str1 এ str2 এর প্রথম ঘটনার জন্য একটি নির্দেশক প্রদান করে, অথবা str2 না পাওয়া গেলে NULL।
  • strncat (str1, str2, n) str2 এর প্রথম n অক্ষর str1 এর শেষে যোগ করে (সংযোজিত করে) এবং str1 এ একটি পয়েন্টার প্রদান করে।
  • strlwr (): স্ট্রিংকে লোয়ার কেসে রূপান্তর করতে
  • strupr (): স্ট্রিংকে বড় ক্ষেত্রে রূপান্তর করতে
  • strrev (): স্ট্রিং বিপরীত করতে

একটি স্ট্রিংকে একটি সংখ্যায় রূপান্তর করা

সি প্রোগ্রামিং-এ, আমরা রান-টাইম ত্রুটি রোধ করতে সংখ্যাসূচক অক্ষরের একটি স্ট্রিংকে সাংখ্যিক মান রূপান্তর করতে পারি। একটি স্ট্রিংকে একটি সংখ্যায় রূপান্তর করার জন্য stdio.h লাইব্রেরিতে নিম্নলিখিত ফাংশন রয়েছে:

  • int atoi (str) মানে ASCII থেকে পূর্ণসংখ্যা; এটি str সমতুল্য int মান রূপান্তরিত করে। যদি প্রথম অক্ষরটি একটি সংখ্যা না হয় অথবা কোন সংখ্যার মুখোমুখি না হয় তাহলে 0 প্রদান করা হয়।
  • ডবল atof (str) ASCII ভাসানোর জন্য দাঁড়ায়, এটি str কে সমতুল্য ডাবল ভ্যালুতে রূপান্তর করে। যদি প্রথম অক্ষরটি একটি সংখ্যা না হয় অথবা কোন সংখ্যার সম্মুখীন না হয় তাহলে 0.0 প্রদান করা হয়।
  • দীর্ঘ int atol (str) ASCII থেকে long int পর্যন্ত দাঁড়ায়, str কে সমতুল্য দীর্ঘ পূর্ণসংখ্যার মান রূপান্তর করে। যদি প্রথম অক্ষরটি একটি সংখ্যা না হয় অথবা কোন সংখ্যার মুখোমুখি না হয় তাহলে 0 প্রদান করা হয়।

নিম্নলিখিত প্রোগ্রাম atoi () ফাংশন প্রদর্শন করে: | _+_ |

আউটপুট: | _+_ |

  • একটি স্ট্রিং পয়েন্টার ঘোষণা যেমন char *string = 'language' একটি ধ্রুবক এবং পরিবর্তন করা যায় না।

সারসংক্ষেপ

  • একটি স্ট্রিং একটি অক্ষর অ্যারেতে সংরক্ষিত অক্ষরের একটি ক্রম।
  • একটি স্ট্রিং একটি পাঠ্য যা ডবল উদ্ধৃতি চিহ্ন দ্বারা আবদ্ধ।
  • একটি অক্ষর যেমন 'ডি' একটি স্ট্রিং নয় এবং এটি একক উদ্ধৃতি চিহ্ন দ্বারা নির্দেশিত হয়।
  • 'সি' একটি প্রোগ্রামে স্ট্রিংগুলি ম্যানিপুলেট করার জন্য স্ট্যান্ডার্ড লাইব্রেরি ফাংশন সরবরাহ করে। স্ট্রিং ম্যানিপুলেটরগুলি হেডার ফাইলে সংরক্ষণ করা হয়।
  • একটি প্রোগ্রামে ব্যবহার করার আগে একটি স্ট্রিং ঘোষিত বা আরম্ভ করা আবশ্যক।
  • বিভিন্ন ইনপুট এবং আউটপুট স্ট্রিং ফাংশন আছে, তাদের মধ্যে প্রত্যেকটির নিজস্ব বৈশিষ্ট্য রয়েছে।
  • স্ট্রিং লাইব্রেরি এর ফাংশনগুলির সাথে কাজ করতে ভুলবেন না
  • আমরা কোডিং এবং ডিকোডিং প্রক্রিয়ার জন্য atoi (), atof () এবং atol () এর মাধ্যমে স্ট্রিংকে সংখ্যায় রূপান্তর করতে পারি।
  • আমরা সি -তে স্ট্রিংগুলির একটি অ্যারে সংজ্ঞায়িত করে বিভিন্ন স্ট্রিংগুলিকে কাজে লাগাতে পারি।