#include <stdio.h>
#define NAME 80

int main()
{
    char ch,name[NAME];
    int i;

    printf("Hello! Please type your name : ");

    for(i=0; (ch=getchar()) != '\n'; ++i) {
        name[i] = ch;
    }
    name[i] = '\0';

    printf("\n%s %s %s","Nice to meet you", name,".");

    printf("\nYour name spelled backward is ");
    for(--i; i>=0; --i) {
        putchar(name[i]);
    }
    printf("\nHave a nice day... \a\a\a\a");
    return 0;
}

এই প্রোগ্রামের লুপ এবং অ্যারে বুঝছি না।

asked 09 Mar, 06:34

Farhan%20Rafi's gravatar image

Farhan Rafi
132

edited 09 Mar, 08:17

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
48618


প্রথম লুপটিতে কন্ডিশন অংশে দেয়া আছে ch = getchar() != '\n'। যার অর্থ হচ্ছে যতক্ষণ পর্যন্ত নিউ লাইন ক্যারেক্টার না পাওয়া যাবে ততক্ষণ পর্যন্ত প্রোগ্রামটি একটি করে ক্যারেক্টার ইনপুট নিতে থাকবে। ইনপুট নেয়া ক্যারেক্টারটি name[i] তে জমা হবে। অর্থাৎ name অ্যারেটি ইনপুট নেয়া হয় প্রথম লুপ দ্বারা। লুপের শেষে স্ট্রিংটিতে একটি নাল ক্যারেক্টার যোগ করা হয়েছে। দ্বিতীয় লুপ দিয়ে নামটিকে উল্টা করে প্রিন্ট করা হয়েছে। যেহেতু স্ট্রিংয়ের শেষ ক্যারেক্টারটি নাল, তাই লুপের প্রথম অংশে --i ব্যবহার করা হয়েছে যাতে শেষের নাল ক্যারেক্টারটি বাদ যায়। তারপর লুপটি i >= 0 পর্যন্ত চালানো হয়েছে (কারণ স্ট্রিং/অ্যারের প্রথম ইনডেক্স ০)। এতে করে নামটি শেষ থেকে পর্যায়ক্রমে প্রথম ক্যারেক্টার পর্যন্ত প্রিন্ট হয়।

permanent link

answered 09 Mar, 08:46

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
48618

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:

×88
×17
×4
×2

question asked: 09 Mar, 06:34

question was seen: 181 times

last updated: 09 Mar, 08:46