اطلاعیه

Collapse
No announcement yet.

سوال در مورد تعریف یک رشته در زبان c

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    سوال در مورد تعریف یک رشته در زبان c

    سلام دوستان
    من میخاستم بدونم، چرا تو زبان c برای تعریف یک رشته بصورت آرایه ای، حتما باید اندازه ی آرایه رو یکی بیشتر از تعداد کاراکترهاش در نظر بگیریم.
    char a[4]="ali";
    مثلا تو برنامه ی بالا با وجود اینکه کلمه ی ali سه کاراکتر باشه اما اگر بجای 4 بنویسیم 3 ،کدویژن اروره too many initializers رو میده، چرا؟
    تقدیر تقویم انسانهای عادی ، تغییر تدبیر انسانهای عالیست.

    #2
    پاسخ : سوال در مورد تعریف یک رشته در زبان c

    نوشته اصلی توسط mohammad_6910
    سلام دوستان
    من میخاستم بدونم، چرا تو زبان c برای تعریف یک رشته بصورت آرایه ای، حتما باید اندازه ی آرایه رو یکی بیشتر از تعداد کاراکترهاش در نظر بگیریم.
    char a[4]="ali";
    مثلا تو برنامه ی بالا با وجود اینکه کلمه ی ali سه کاراکتر باشه اما اگر بجای 4 بنویسیم 3 ،کدویژن اروره too many initializers رو میده، چرا؟

    سلام
    احتمالا برای NULL هستش.
    این NULL در پایان هر رشته وجود دارد و به کمک اون میتونیم پایان رشته رو تشخیص بدیم


    موفق باشی
    به رویاهات فکر کن!!

    دیدگاه


      #3
      پاسخ : سوال در مورد تعریف یک رشته در زبان c

      نوشته اصلی توسط اریک ماطوسیان

      سلام
      احتمالا برای NULL هستش.
      این NULL در پایان هر رشته وجود دارد و به کمک اون میتونیم پایان رشته رو تشخیص بدیم


      موفق باشی
      ممنون از توجهتون، میشه لطف کنی در این مورد بیشتر توضیح بدی.
      تقدیر تقویم انسانهای عادی ، تغییر تدبیر انسانهای عالیست.

      دیدگاه


        #4
        پاسخ : سوال در مورد تعریف یک رشته در زبان c

        به این شکل نگاه کن بهتر متوجه میشی. مثلا همون اسمی که گفتی "ali" رو بخوای به صورت رشته توی یه آرایه بریزی اینطوری ذخیره میشه :



        که اون خونه آخری NULL هستش و اون شکل بالاییش هم علامتشه.

        مثلا فرض کن بخوای توی یه رشته تمام حروف 'A' رو شمارش کنی.. برنامت یه همچین حالتی میشه:


        i=0;
        while(str[]!=NULL)
        {
        if(str[i]=='A&#039
        {
        count++;
        }
        i++;
        }

        یعنی تا زمانی که رشته با پایان خودش نرسیده (به NULL نرسیده ) حروف 'A' رو بشمار.

        به این ترتیب با استفاده از NULL تونستیم پایان رشته رو تشخیص بدیم.

        امیدوارم خوب توضیح داده باشم
        به رویاهات فکر کن!!

        دیدگاه

        لطفا صبر کنید...
        X