scanf("%[^\n]s", s); & s[i] != '\0';

asked 23 Apr '16, 06:34

Masumbillal's gravatar image

Masumbillal
111


scanf("%[^\n]", s); এটার মাধমে scanf ফাংসন new-line char না পাওয়া পর্যন্ত ইনপুট নিতে থাকবে ।

আর '\0' দ্বারা null char বোঝান হয় । s[i] এর i তম ইনডেক্স এ যদি null char না থাকে তবে s[i] != '\n' এই statement ট্রু রিটার্ন করবে । অন্যথায় false রিটার্ন করবে ।

permanent link

answered 23 Apr '16, 06:50

menon's gravatar image

menon
4.1k222

আরেকটু সহজ ভাবে বললে..

scanf("%[^\n]s", s);

এই লাইনটার মানে হচ্ছে, আপনি যতক্ষণ না Enter বাটন প্রেস করেন ততক্ষণ S স্ট্রিংয়ে ডাটা ইনপুট দিতে পারবেন।

আর

s[i] != '\0';

এই লাইনটার '\0' এইটা হচ্ছে, নাল ক্যারেক্টার। প্রত্যেকটা স্ট্রিংয়ের শেষ ক্যারেক্টার হিসাবে একটা নাল ('\0') ক্যারেক্টার থাকে যার কারণে ডাটার সাইজ থেকে স্ট্রিংয়ের সাইজ এক (বাইট) বেশী হিসাবে ডিক্লেয়ার করতে হয়।

ঐ লাইন দ্বারা বোঝাচ্ছে, যতক্ষণ না s[i] = নাল ক্যারেক্টার হয়। আর S[i] = নাল ক্যারেক্টার পেলেই কম্পাইলার বুঝবে স্ট্রিংয়ের ডাটা শেষ হয়ে গেছে।

যেমনঃ আমারা যদি S স্ট্রিংয়ে "Hi! I'm Masum" স্ট্রিংটা রাখি তাহলে কম্পিউটারে এইটা "Hi! I'm Masum\0" হিসাবে থাকবে যেখানে '\0' নাল ই শেষ ক্যারেক্টার।

permanent link

answered 23 Apr '16, 07:16

_Shaon_'s gravatar image

_Shaon_
668112

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×110
×36
×22
×7
×2

question asked: 23 Apr '16, 06:34

question was seen: 518 times

last updated: 23 Apr '16, 07:16