سلام ، آیا این بازدید اول شماست ؟ یا
تبلیغات در این انجمن
×
+
سفارش تبلیغات
صفحه 3 از 5 اولیناولین 12345 آخرینآخرین
نمایش نتایج: از شماره 21 تا 30 از مجموع 49

موضوع: مثال هایی از توابع در زبان برنامه نویسی C

  1. #21
    عضو ثابت
    تاریخ عضویت
    Aug 2014
    ارسال ها
    69
    محصول امنیتی
    ESET NOD32
    تشکر تشکر کرده 
    32
    تشکر تشکر شده 
    389
    اعتبار کاربر
    1

    Post تابع strfrc_c

    این تابع، دو رشته str1 و str2 را با یکدیگر مقایسه می کند:
    • اگر رشته str1 حداقل حاوی یک کاراکتر باشد که در رشته str2 نیز یافت می شود (در مثال زیر، کاراکتر 1 و # نیز در هر دو رشته وجود دارند)، بنابراین« اولین کاراکتر یافت شده» توسط این تابع برگشت داده می شود. در غیر این صورت مقدار 0 برگشت داده می شود.
    • رجوع به تابع fillitoff و strcpy_v7
    • رجوع به تابع lookfor_c_v3



    کد:
    #include <stdio.h>
    #include <stdlib.h> /* for malloc() free() EXIT_SUCCESS */
    #include <string.h>
    
    #define MXSZ 1024
    
    int strfrc_c (const char*, const char*);
    
    int main ()
    {
       char *str1, *str2;
    
       str1 = (char*) malloc (MXSZ);
       str2 = (char*) malloc (MXSZ);
    
       fillitoff (str1, '\0', MXSZ);
       fillitoff (str2, '\0', MXSZ);
    
       strcpy_v7 (str1, "vT5...(1),#");
       strcpy_v7 (str2, "O_P[%]##\"1#{");
    
       printf ("%i\n", strfrc_c (str1, str2));
    
       free (str1);
       free (str2);
    
       return (EXIT_SUCCESS);
    }
    
    int strfrc_c (const char *str1, const char *str2)
    {
       for (; *str2; ++str2)
       {
          if (lookfor_c_v3 (str1, *str2) == 1)
             return (*str2);
       }
    
       return (0);
    }
    ویرایش توسط C89 : 19-01-2015 در ساعت 20:33

  2. کاربران : 6 تشکر کرده اند از شما C89 برای ارسال این پست سودمند:


  3. #22
    عضو ثابت
    تاریخ عضویت
    Aug 2014
    ارسال ها
    69
    محصول امنیتی
    ESET NOD32
    تشکر تشکر کرده 
    32
    تشکر تشکر شده 
    389
    اعتبار کاربر
    1

    Post تابع strfrc_s

    • رشته str1 می بایست شامل تمام کاراکترهایی که در رشته str2 یافت می شود نیز باشد، تا مقدار 1 برگشت داده شود. در غیر این صورت، 0 نیز برگشت داده می شود.




    کد:
    #include <stdio.h>
    #include <stdlib.h> /* for malloc() free() EXIT_SUCCESS */
    
    #define MXSZ 1024
    
    unsigned int strfrc_s (const char*, const char*);
    
    int main ()
    {
       char *str1, *str2;
    
       str1 = (char*) malloc (MXSZ);
       str2 = (char*) malloc (MXSZ);
    
       fillitoff (str1, '\0', MXSZ);
       fillitoff (str2, '\0', MXSZ);
    
       strcpy_v7 (str1, "E.B.B.C.AAD");
       strcpy_v7 (str2, "A.BCDE-");
    
       printf ("%i\n", strfrc_s (str1, str2));
    
       free (str1);
       free (str2);
    
       return (EXIT_SUCCESS);
    }
    
    unsigned int strfrc_s (const char *str1, const char *str2)
    {
       while (*str2)
       {
          if (lookfor_c_v3 (str1, *str2) == 1)
             *str2++;
          else
             return (0);
       }
    
       return (1);
    }
    ویرایش توسط C89 : 20-01-2015 در ساعت 17:31

  4. کاربران : 5 تشکر کرده اند از شما C89 برای ارسال این پست سودمند:


  5. #23
    عضو ثابت
    تاریخ عضویت
    Aug 2014
    ارسال ها
    69
    محصول امنیتی
    ESET NOD32
    تشکر تشکر کرده 
    32
    تشکر تشکر شده 
    389
    اعتبار کاربر
    1

    Post نسخه اول تابع opcd2d

    این تابع، اعداد باینری (دودویی) را به اعداد صحیح تبدیل می کند.


    کد:
    #include <stdio.h>
    #include <stdlib.h> /* for malloc() free() EXIT_SUCCESS */
    
    #define MAX_SIZE 1024
    
    unsigned long opcd2d_v1 (const char*);
    
    int main ()
    {
       char *bincode;
    
       bincode = (char*) malloc (MAX_SIZE);
    
       fillitoff (bincode, '\0', sizeof (bincode));
    
       strcpy_v7 (bincode, "11111111111111111111111111111111");
    
       printf ("%lu\n", opcd2d_v1 (bincode));
    
       free (bincode);
    
       return (EXIT_SUCCESS);
    }
    
    unsigned long opcd2d_v1 (const char *bin)
    {
       unsigned long dec;
       
       for (dec = 0; *bin; bin++)
       {
          if (*bin == '0' || *bin == '1')
             dec = dec * 2 + *bin - '0';
       }
       
       return (dec);
    }
    ویرایش توسط C89 : 17-01-2015 در ساعت 14:42

  6. کاربران : 5 تشکر کرده اند از شما C89 برای ارسال این پست سودمند:


  7. #24
    عضو ثابت
    تاریخ عضویت
    Aug 2014
    ارسال ها
    69
    محصول امنیتی
    ESET NOD32
    تشکر تشکر کرده 
    32
    تشکر تشکر شده 
    389
    اعتبار کاربر
    1

    پیش فرض تابع is_digit, is_upper, is_lower, up2low_c, low2up_c

    • is_digit وظیفه تشخیص کاراکترهای عددی را بر عهده دارد.
    • is_upper وظیفه تشخیص حرف بزرگ انگلیسی را بر عهده دارد. (C)
    • is_lower وظیفه تشخیص حرف کوچک انگلیسی را بر عهده دارد. (c)
    • up2low_c حرف بزرگ انگلیسی را به حرف کوچک آن تبدیل می کند. (C به c)
    • low2up_c حرف کوچک انگلیسی را به حرف بزرگ آن تبدیل می کند. (c به C)

    کد:
    #include <stdio.h>
    #include <stdlib.h> /* for EXIT_SUCCESS */
    
    int low2up_c (int);
    int up2low_c (int);
    int is_upper (const int);
    int is_lower (const int);
    int is_digit (const int);
    
    int main ()
    {
       int c;
    
       c = 'c';
       if (low2up_c (c) == 'C')
          putchar (low2up_c (c));
    
       c = 'C';
       if (up2low_c (c) == 99)
          putchar (up2low_c (c));
    
       putchar (up2low_c (low2up_c (up2low_c (c))));
    
       c = '0';
       if (is_digit (c) && is_digit ('1') && is_digit ('4'))
          putchar ('C');
    
       return (EXIT_SUCCESS);
    }
    
    int low2up_c (int c)
    {
       if (is_lower (c))
          return (c -= 32);
       else
          return (c);
    }
    
    int up2low_c (int c)
    {
       if (is_upper (c))
          return (c += 32);
       else
          return (c);
    }
    
    int is_upper (const int c)
    {
        if (c >= 'A' && c <= 'Z')
           return (c);
        else
           return (0);
    }
    
    int is_lower (const int c)
    {
        if (c >= 'a' && c <= 'z')
           return (c);
        else
           return (0);
    }
    
    int is_digit (const int c)
    {
        if (c >= '0' && c <= '9')
           return (c);
        else
           return (0);
    }
    ویرایش توسط C89 : 14-01-2015 در ساعت 04:42

  8. کاربران : 2 تشکر کرده اند از شما C89 برای ارسال این پست سودمند:


  9. #25
    عضو ثابت
    تاریخ عضویت
    Aug 2014
    ارسال ها
    69
    محصول امنیتی
    ESET NOD32
    تشکر تشکر کرده 
    32
    تشکر تشکر شده 
    389
    اعتبار کاربر
    1

    پیش فرض تابع low2up_str و up2low_str

    • low2up_str حروف کوچک انگلیسی را به حروف بزرگ آن تبدیل می کند. (abc به ABC)
    • up2low_str حروف بزرگ انگلیسی را به حروف کوچک آن تبدیل می کند. (ABC به abc)
    • رجوع به تابع fillitoff و strcpy_v7

    کد:
    #include <stdio.h>
    #include <stdlib.h> /* for EXIT_SUCCESS free () malloc () */
    
    #define MXSZ 1024
    
    char *low2up_str (char*);
    char *up2low_str (char*);
    
    int main ()
    {
       int c = 't';
       char *str;
    
       str = (char*) malloc (MXSZ);
       fillitoff (str, '\0', sizeof (str));
    
       strcpy_v7 (str, "C progrAmming lAnguage (1989)");
       puts (low2up_str (str));
    
       strcpy_v7 (str, "c PROGRaMMING LaNGUAGE (1989)");
       up2low_str (str);
       puts (str);
    
       free (str);
    
       return (EXIT_SUCCESS);
    }
    
    char *low2up_str (char *str)
    {
       char *str_ptr = str;
    
       for (; *str; ++str)
       {
          if (*str >= 'a' && *str <= 'z')
             *str -= 32;
       }
    
       return (str_ptr);
    }
    
    char *up2low_str (char *str)
    {
       char *str_ptr = str;
    
       for (; *str; ++str)
       {
          if (*str >= 'A' && *str <= 'Z')
             *str += 32;
       }
    
       return (str_ptr);
    }
    ویرایش توسط C89 : 17-01-2015 در ساعت 14:44

  10. کاربران : 2 تشکر کرده اند از شما C89 برای ارسال این پست سودمند:


  11. #26
    عضو ثابت
    تاریخ عضویت
    Aug 2014
    ارسال ها
    69
    محصول امنیتی
    ESET NOD32
    تشکر تشکر کرده 
    32
    تشکر تشکر شده 
    389
    اعتبار کاربر
    1

    پیش فرض تابع pushf


    کد:
    #include <stdio.h>
    #include <stdlib.h> /* for EXIT_SUCCESS free () malloc () */
    
    #define MXSZ 1024
    
    char *pushf (const long max_size, char[], const long, long);
    
    int main ()
    {
       unsigned int pos;
       char *buff;
    
       buff = (char*) malloc (MXSZ);
       fillitoff (buff, '\0', MXSZ);
    
       printf ("%s\n", strcpy_v7 (buff, "C_Programming_Language"));
       printf ("%s\n\n", pushf (MXSZ, buff, 0, 3));
    
       fillitoff (buff, '\0', MXSZ);
    
       printf ("%s\n", strcpy_v7 (buff, "C_Programming_Language"));
       printf ("%s\n\n", pushf (MXSZ, buff, 14, 6));
    
       fillitoff (buff, '\0', MXSZ);
    
       printf ("%s\n", strcpy_v7 (buff, "C_Programming_Language"));
    
       for (pos = 1; pos < 50; pos += 2)
          pushf (MXSZ, buff, pos, 1);
    
       printf ("%s\n", buff);
    
       free (buff);
    
       return (EXIT_SUCCESS);
    }
    
    char *pushf (const long max_size, char str[], const long pos, long n)
    {
       if (max_size < 3 || pos < 0 || strlen_v7 (str, 0) <= pos || n < 1 || strlen_v7 (str, 0) + n > max_size-1)
          return (NULL);
    
       long i;
    
       for (; n > 0; --n)
       {
          for (i = strlen_v7 (str, 1); i >= pos; --i)
             str[i+1] = str[i], str[i] = ' ';
       }
    
       return (str);
    }
    ویرایش توسط C89 : 17-01-2015 در ساعت 15:02

  12. کاربران : 2 تشکر کرده اند از شما C89 برای ارسال این پست سودمند:


  13. #27
    عضو ثابت
    تاریخ عضویت
    Aug 2014
    ارسال ها
    69
    محصول امنیتی
    ESET NOD32
    تشکر تشکر کرده 
    32
    تشکر تشکر شده 
    389
    اعتبار کاربر
    1

    پیش فرض تابع add_c



    کد:
    #include <stdio.h>
    #include <stdlib.h> /* for EXIT_SUCCESS free () malloc () */
    
    #define MXSZ 1024
    
    char *add_c (const long, char[], const int, long, int);
    
    int main ()
    {
       char *buff;
    
       buff = (char*) malloc (MXSZ);
       fillitoff (buff, '\0', MXSZ);
    
       puts (strcpy_v7 (buff, ".........."));
    
       puts (add_c (MXSZ, buff, '*', 1, 'M'));
       puts (add_c (MXSZ, buff, 'C', 3, 'l'));
       puts (add_c (MXSZ, buff, '#', 3, 'R'));
       puts (add_c (MXSZ, buff, '+', 15, 'm'));
    
       free (buff);
    
       return (EXIT_SUCCESS);
    }
    
    char *add_c (const long max_size, char str[], const int c, long n, int side)
    {
       if (max_size < 2 || n < 1 || strlen_v7 (str, 0) + n > max_size-1)
          return (NULL);
    
       long i;
    
       switch (low2up_c (side))
       {
          case 'L' :
             pushf (max_size, str, i = 0, n);
             break;
    
          case 'M' :
             pushf (max_size, str, i = strlen_v7 (str, 0)/2, n);
             break;
    
          case 'R' :
             i = strlen_v7 (str, 0);
             break;
    
          default :
             return (NULL);
       }
    
       for (; n > 0; --n)
          str[i++] = c;
    
       return (str);
    }
    ویرایش توسط C89 : 17-01-2015 در ساعت 15:20

  14. کاربران : 2 تشکر کرده اند از شما C89 برای ارسال این پست سودمند:


  15. #28
    عضو ثابت
    تاریخ عضویت
    Aug 2014
    ارسال ها
    69
    محصول امنیتی
    ESET NOD32
    تشکر تشکر کرده 
    32
    تشکر تشکر شده 
    389
    اعتبار کاربر
    1

    پیش فرض تابع replace_c

    • این تابع کاراکتر new_c را جایگزین کاراکتر pre_c در رشته str می کند، و تعداد کاراکترهای pre_c یافت شده در رشته str را برگشت می دهد.
    • رجوع به تابع fillitoff و strcpy_v7

    کد:
    #include <stdio.h>
    #include <stdlib.h> /* for EXIT_SUCCESS free () malloc () */
    
    #define MXSZ 1024
    
    unsigned long replace_c (char*, int, int);
    
    int main ()
    {
       char *str;
    
       str = (char*) malloc (MXSZ);
       fillitoff (str, '\0', MXSZ);
    
       puts (strcpy_v7 (str, "I-have-made-a-lot-of-mistakes,-but-i-am-still-alive..."));
    
       printf ("%lu\n", replace_c (str, '-', ' '));
    
       free (str);
    
       return (EXIT_SUCCESS);
    }
    
    unsigned long replace_c (char *str, int pre_c, int new_c)
    {
       unsigned long nc;
    
       for (nc = 0; *str; str++)
       {
          if (*str == pre_c)
          {
             *str = new_c;
             ++nc;
          }
       }
    
       return (nc);
    }
    ویرایش توسط C89 : 17-01-2015 در ساعت 15:29

  16. کاربران : 2 تشکر کرده اند از شما C89 برای ارسال این پست سودمند:


  17. #29
    عضو ثابت
    تاریخ عضویت
    Aug 2014
    ارسال ها
    69
    محصول امنیتی
    ESET NOD32
    تشکر تشکر کرده 
    32
    تشکر تشکر شده 
    389
    اعتبار کاربر
    1

    پیش فرض نسخه جدید تابع delete_c

    • این تابع pos-مین کاراکتر از رشته str را n-دفعه حذف می کند. درواقع کاراکتر بعد از pos-مین کاراکتر، جای آن را پُر می کند. این روند آنقدر تکرار می شود تا str به کاراکتر NULL برسد. در هر دور از حلقه while، یکی از n کم می شود. تابع تعداد کاراکترهای حذف شده را برگشت می دهد.
    • رجوع به تابع fillitoff و strcpy_v7


    کد:
    #include <stdio.h>
    #include <stdlib.h> /* for EXIT_SUCCESS free () malloc () */
    
    #define MXSZ 1024
    
    long delete_c (char[], long, long);
    
    int main ()
    {
       char *str;
    
       str = (char*) malloc (MXSZ);
       fillitoff (str, '\0', MXSZ);
    
       puts (strcpy_v7 (str, "9876543210"));
    
       delete_c (str, 0, 3);
       puts (str);
    
       delete_c (str, 0, 1);
       puts (str);
    
       free (str);
    
       return (EXIT_SUCCESS);
    }
    
    long delete_c (char str[], long pos, long n)
    {
       if (pos < 0)
          return (-1);
    
       long i, nc;
    
       for (nc = 0; strlen (str) > 0 && n > 0; --n, ++nc)
          for (i = pos; str[i] = str[i+1]; ++i)
             ;
    
       return (nc);
    }
    ویرایش توسط C89 : 22-01-2015 در ساعت 03:33

  18. کاربران : 3 تشکر کرده اند از شما C89 برای ارسال این پست سودمند:


  19. #30
    عضو ثابت
    تاریخ عضویت
    Aug 2014
    ارسال ها
    69
    محصول امنیتی
    ESET NOD32
    تشکر تشکر کرده 
    32
    تشکر تشکر شده 
    389
    اعتبار کاربر
    1

    پیش فرض تابع delete_all_c


    کد:
    #include <stdio.h>
    #include <stdlib.h> /* for EXIT_SUCCESS free () malloc () */
    
    #define MXSZ 1024
    
    unsigned long delete_all_c (char[], const int);
    
    int main ()
    {
       char *str;
    
       str = (char*) malloc (MXSZ);
       fillitoff (str, '\0', MXSZ);
    
       strcpy_v7 (str, " P r o g r a m m i n g");
    
       printf ("%lu\n", delete_all_c (str, ' '));
    
       free (str);
    
       return (EXIT_SUCCESS);
    }
    
    unsigned long delete_all_c (char str[], const int c)
    {
       unsigned long i, nc;
    
       for (nc = i = 0; str[i]; ++i)
       {
          if (str[i] == c)
          {
             delete_c (str, i, 1);
             --i, ++nc;
          }
       }
    
       return (nc);
    }
    ویرایش توسط C89 : 17-01-2015 در ساعت 15:42

  20. کاربران : 5 تشکر کرده اند از شما C89 برای ارسال این پست سودمند:


صفحه 3 از 5 اولیناولین 12345 آخرینآخرین

اطلاعات تاپیک

Users Browsing this Thread

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

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

  1. پاسخ ها: 2
    آخرين ارسال: 05-05-2017, 20:22
  2. راهنمایی در مورد ویروسی بودن یا نبودن فایلها وکرکها
    توسط Microtel در انجمن مباحث عمومی امنیت
    پاسخ ها: 4
    آخرين ارسال: 11-10-2013, 15:26
  3. سه بعدی دیدن فیلم هایی که سه بعدی نیستند در ایران !
    توسط paye2 در انجمن مباحث عمومی ویدئو
    پاسخ ها: 3
    آخرين ارسال: 01-10-2013, 13:30
  4. یه سوال درباره دامنه! - راهنمایی کنید
    توسط javadmo در انجمن سایر مباحث عمومی اینترنت
    پاسخ ها: 15
    آخرين ارسال: 28-09-2013, 20:13
  5. پاسخ ها: 0
    آخرين ارسال: 09-09-2011, 22:49

برچسب برای این موضوع

بوک مارک ها

بوک مارک ها

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

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