الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

دالة strpbrk تعبت ولاقدرت افهمها

مغلق
بدأه فلسفة في 19 أبريل 2003 · 2 رد · 829 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

هذي الداله في السترنق strpbrk جننتني حاولت افهم شغلها ماقدرت والمشكله عندي مثال عنها وبرضو مافهمت شغلها وهذا اهو المثال

ياليت الي يقدر يشرحها لي مرة ثانيه بطريقة اسهل واذا عنده امثله اكثر ياليت يحطها

#include "string.h" 

#include "stdio.h" 

void main(void) 

{ 

        char text[80]; 

        char *ptr; 



        printf("Enter a string contaning puncuations: n"); 

        gets(text); 

        ptr = text; 



        while(ptr != '') 

        { 

            ptr = strpbrk(ptr, ".,!;'/-/" ); 

            if(ptr != '') 

                *ptr = ' '; 

        } 

        printf("n%snn",text); 

    return 0; 

}
#2

اخي العزيز الخطاء الاول وهو ptr!= NULL مو !=' '

ثاني خطا وهو انك معرف main void وبعدين حاط return اما عن عمل هذه function فهي تستقبل 2 parametar الاول يكون string ,والثاني الحرف الي تبي تدور عليه وترجه مؤشر على اي CHARACTER

موجود في parameter الثاني

وهذا تصحيح الكود

#include "string.h" 
#include "stdio.h" 
void main(void) 
{ 
        char text[80] ; 
        char *ptr ; 

        printf("Enter a string contaning puncuations: n"); 
        gets(text); 
        ptr = text ; 

        while(ptr != NULL) 
        { 
            ptr = strpbrk(ptr, ".,!;'/-/" ); 
            if(ptr != NULL) 
                *ptr = ' '; 
        } 
        printf("n%snn",text); 
}
#3

ويمكنك أيضاً وضع الشرط هكذا :

while(ptr)

وأيضا

if(ptr)

ستعطي نفس الدلالة, لأن التعبير اذا اعطى قيمة NULL فهذا معناه بالنسبة للشرط false فاذا وصلت الى المكان الذي يحتوي على NULL سيعتبر الشرط أن القيمة false فلا يتحقق...

بإختصار شديد:

while(ptr) تساوي   while(ptr != NULL)

هذا الموضوع مغلق.

مواضيع مشابهة