ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





نمایش نتایج: از 1 به 9 از 9
  1. #1
    تاریخ عضویت
    2019/07/30
    نوشته ها
    12
    1
    Junior Member

    طول آرایه در سی پلاس پلاس

    سلام دوستان ، چگونه در ++c میشه طول یک آرایه را به دست آورد ؟ (جدا از کاربر نگیریم طول آرایه را)
  2. #2
    تاریخ عضویت
    2017/11/22
    نوشته ها
    364
    240
    Administrator
    سلام با استفاده از روش زیر میتونی طول آرایه رو پیدا کنی:
    کد:
    #include <iostream>
    int main()
    {
        int sample[] = { 12, 2, 14, 18, 12, 20 };
        int length = sizeof(sample) / sizeof(sample[0]);
        // OR
        //int length = sizeof(sample) / sizeof(*sample);
        std::cout << "Length of array = " << length << std::endl;
    }
  3. #3
    تاریخ عضویت
    2017/11/22
    نوشته ها
    364
    240
    Administrator
    میتونی اینجا تست کنی کد رو:
  4. #4
    تاریخ عضویت
    2019/07/30
    نوشته ها
    12
    1
    Junior Member
    سلام دوست عزیز خیلی ممنون کار کرد اما اگر وقت دارید یک توضیحی درباره sizeof بدین ممنون میشم و کلا ساختار این کد
    ویرایش توسط AmRo : 2019/08/06 در ساعت 08:56
  5. #5
    تاریخ عضویت
    2017/11/22
    نوشته ها
    364
    240
    Administrator
    تابع sizeof یه ورودی میگیره و اندازه اون ورودی در تو حافظه رو بر میگردونه (یعنی میزان حافظه ای که اشغال کرده). تو کد بالا ما اول میزان حافظه ای که کل ارایه گرفته رو با استفاده از sizeof(sample) بدست میاریم که تو مثال بالا میشه 24. بعد میزان حافظه ای که یک عنصر از آرایه میگیره رو با sizeof(sample[0]) میگیریم که میشه 4 چون نوع آرایه int هستش و هر نوع int چهار واحد حافظه میگیره. حالا اگه سایز کل رو تقسیم بر سایز یک واحد از آرایه کنیم، تعداد عناصر بدست میاد.
  6. #6
    تاریخ عضویت
    2019/07/30
    نوشته ها
    12
    1
    Junior Member
    با تشکر
    همه int ها چهار واحدن ؟؟؟
    اما ممکنه int ما کوچکتر از چهار واحد باشه و این یعنی فضای به هدر رفته !
  7. #7
    تاریخ عضویت
    2017/11/22
    نوشته ها
    364
    240
    Administrator
    منظورم از واحد تعداد ارقام عدد نیست....این مثالو ببین:
    کد:
    #include <iostream>
    int main()
    {
        short int shortInteger = 12;
        long int longInteger = 123456789345;
        std::cout << sizeof(12345) << std::endl; // Output: 4
        std::cout << sizeof(1) << std::endl; // Output: 4
        std::cout << sizeof(-1) << std::endl; // Output: 4
        std::cout << sizeof(0) << std::endl; // Output: 4
        std::cout << sizeof(shortInteger) << std::endl; // Output: 2
        std::cout << sizeof(longInteger) << std::endl; // Output: 8
    }
    تو مثال بالا خروجی برای متغیر هایی که از نوع داده int هستن ۴ه...برای short مقدار ۲ و برای long هم مقدار ۸. این نشون میده که فضای اشغالی تو حافظه به نوع داده (DataType) بستگی داره.
  8. #8
    تاریخ عضویت
    2019/07/30
    نوشته ها
    12
    1
    Junior Member
    سلام مجدد این روش برای طول رشته ها جواب نمی ده ! باتشکر
  9. #9
    تاریخ عضویت
    2017/11/22
    نوشته ها
    364
    240
    Administrator
    برای گرفتن طول رشته در زبان سی پلاس پلاس میتونی از روشهای زیر استفاده کنی:
    کد:
    #include <string.h> // using strlen method
    #include <iostream>
    using namespace std;
    // Own method
    int getLength(string value)
    {
        int i;
        for (i = 0; value[i] != '\0'; i++);
        return i;
    }
    int main()
    {
        string sampleText = "Hello world!";
        cout << sampleText.size() << endl; // output: 12
        cout << sampleText.length() << endl; // output: 12
        cout << strlen(sampleText.c_str()) << endl; // output: 12
        cout << getLength(sampleText) << endl; // output: 12
        return 0;
    }
نمایش نتایج: از 1 به 9 از 9

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •