code 42

برنامه ای که با استفاده از اشاره گر تابع, تابعی را فراخوانی کرده , دو رشته را از ورودی خوانده و تشخیص می دهد که آیا این دو رشته با هم مساوی اند یا خیر .

توضیحات : آرگوان های تابع check عبارت اند از رشته های s1 و s2 و اشاره گر p و پارامترهای آن عبارت اند از دو اشاره گر رشته ای و یک اشاره گر از نوع تابع .پرانتزهایی که در اطراف cmp* آمده اند ضروری اند.زیرا در غیر این صورت این اشاره گر به عنوان اشاره گر تابعی محسوب نخواهد شد. در تابع check دستور (cmp)(a,b*) موجب اجرای تابع strcmp میشود.زیرا آدرس آن تابع در اشاره گر cmp قرار دارد.

(۶-۴)
:

#include <stdio.h>
#include <conio.h>
#include <string.h>
void check(char *a, char *b, int (*cmp)(const char *, const char *));
//int cmp(char *, char *);
int main()
{
    char s1[80], s2[80] ;
    int (*p)(const char *, const char *);
    p = strcmp;
    printf(" enter first string :") ;
    gets(s1) ;
    printf(" enter second string :") ;
    gets(s2) ;
    check(s1, s2, p);
    getch();
    return 0;
}
//*********************
void check(char *a, char *b, int (*cmp)(const char *, const char *))
{
   if(!(cmp)(a, b))
       printf(" the strings are equal.");
   else
       printf(" strings are not equal.");
}
0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

© کپی رایت - www.irccode.ir