دوست عزیز، به سایت علمی نخبگان جوان خوش آمدید

مشاهده این پیام به این معنی است که شما در سایت عضو نیستید، لطفا در صورت تمایل جهت عضویت در سایت علمی نخبگان جوان اینجا کلیک کنید.

توجه داشته باشید، در صورتی که عضو سایت نباشید نمی توانید از تمامی امکانات و خدمات سایت استفاده کنید.
نمایش نتایج: از شماره 1 تا 8 , از مجموع 8

موضوع: توابع کتابخانه ای رشته ای

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #8
    دوست آشنا
    رشته تحصیلی
    C@/\/\P\/T(-R
    نوشته ها
    1,138
    ارسال تشکر
    8,061
    دریافت تشکر: 4,739
    قدرت امتیاز دهی
    7124
    Array
    Outta_Breathe1020's: جدید59

    پیش فرض تابع atoi

    نام اين تابع مخفف ascii to integer مي باشد و در فايل سرآمد stdlib.h تعريف شده است. اين تابع يك رشته را دريافت و آن را تبديل به عدد مي كند. البته مسلما رشته بايد منحصرا از ارقام و علامت + يا – تشكيل شده باشد. بعنوان مثال چنانچه رشته "3478" را به آن بدهيم، عدد 3478 را باز خواهد گرداند. چنانچه رشته ورودي قابل تبديل به عدد نباشد (بدليل وجود كاراكترهاي غيرمجاز مانند حروف)، تابع مقدار 0 باز خواهد گرداند. پياده سازي اين تابع در زير آمده است: (دريافت برنامه)
    کد:
    int atoi(const char string[]) {
       int i=0 , sign=1, number=0;
     
       if (string[0] == '-') {
            sign = -1;
            i = 1;
       }
       else if (string[0] == '+') 
                i = 1;
     
       for (; string[i]; i++)
            if (string[i]>'0' && string[i]<'9')
                number = number * 10 + (string[i] – 48) ; // or (string[i] – '0')
            else return(0);
      
       return(sign * number);
    }


    در تابع فوق، string رشته اي است كه قصد تبديل آن به عدد را داريم. متغير i شمارنده رشته است كه از 0 آغاز مي گردد و sign علامت عدد است كه بطور پيش فرض +1 درنظر گرفته مي شود. متغير number نيز مقدار عدد حاصل را در خود نگاه مي دارد. ابتدا بررسي مي شود اگر اولين عنصر آرايه string برابر '-' است، علامت عدد به -1 تغيير يافته و شمارنده رشته نيز يكي جلو مي رود. چنانچه اولين عنصر برابر '+' باشد، نيازي به تغيير علامت نيست ولي شمارنده رشته بايد جلو برود. سپس در داخل حلقه for، عناصر رشته string به ترتيب بررسي شده و درصورتيكه يك رقم باشند، به حاصل اضافه مي گردند و در غير اينصورت نيز مقدار 0 بازگردانده مي شود. دقت كنيد كه براي اضافه كردن يك كاراكتر رقمي به number، ابتدا از آن 48، كه كد اسكي كاراكتر 0 است، را كم مي كنيم تا مقدار عددي آن كاراكتر بدست آيد. بعنوان مثال كد اسكي '1' برابر 49 است و پس از كم كردن 48 از آن به رقم 1 مي رسيم. مي توان در برنامه بجاي عدد 48، كاراكتر '0' را از string[i] كم كرد. در ضمن number در ابتدا در 10ضرب مي شود و سپس با رقم جديد جمع مي شود تا رقم جديد در مكان يكان آن اضافه گردد.


    تابع ديگري بنام itoa نيز وجود دارد که يک عدد را دريافت و آن را تبديل به يک رشته مي کند. مي توانيد اين تابع را بعنوان تمرين بنويسيد.

    از همين دسته توابع، توابع مفيد ديگري همچون atof براي تبديل يک رشته به يک عدد اعشاري و atol براي تبديل يک رشته به يک عدد صحيح بزرگ نيز وجود دارند كه براي آشنايي با آنها مي توانيد به مستندات كامپايلر خود مراجعه كنيد.

    توابعي كه مورد بحث قرار گرفتند، ازجمله مهمترين توابعي بودند كه براي كار با رشته ها مورد نياز هستند. اما در فايل سرآمد string.h توابع مفيد ديگري نيز وجود دارند كه براي آشنايي با آنها به مستندات كامپايلر خود رجوع كنيد.
    و مجازات تخفیف یافته ات این بار حبس ابد در این دنیاست...!!!

    Nearly 1 billion people go to bed hungry every night and every year 2 million children die from malnutrition

    شاید صدای مرگ بود که میگفت: تو هم اگر قاتل نباشی، سارق حیات این ها بوده ای...

  2. کاربرانی که از پست مفید Outta_Breathe1020 سپاس کرده اند.


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ ها: 4
    آخرين نوشته: 9th August 2014, 09:59 PM
  2. تصویر: jتصاویر حمله به اتوبوس تراکتورسازی در رشت
    توسط m.g.s.t.r در انجمن اخبار ورزشی
    پاسخ ها: 3
    آخرين نوشته: 8th February 2013, 10:11 PM
  3. پاسخ ها: 0
    آخرين نوشته: 15th August 2011, 04:49 PM
  4. آموزشی: آموزش فتوشاپ - اعمال خالکوبی بروی تصاویر در فتوشاپ
    توسط آبجی در انجمن آموزش و ابزارهای فتوشاپ
    پاسخ ها: 0
    آخرين نوشته: 1st July 2010, 12:32 AM
  5. پاسخ ها: 0
    آخرين نوشته: 12th November 2009, 08:39 PM

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

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

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