السلام عليكم ورحمة الله و بركاته
لدي تمرين .. و أقسم بالله العظيم أنه ليس تمرين منزلي:
اكتب ثلاث دوال تكافئ الدوال التالي:
الدالة الأولى تكافئ strlen
الدالة الثانية تكافئ strcpy
الدالة الثالثة (شيبت رأسي !!!) تكافئ srtcmp
1-استطعت كتابة دالة تكافئ الدالة الأولى:
void str_len(char strg[])
{
int i=0;
while(strg!='\0')
i++;
cout<<"dim="<<i<<endl;
}وقد وجدت في بعض الكتب دالة تكافئ strlen:
int len(char str[])
{
int i;
for(i=0;str;i++);
return i;
}هل رأيت كيف كتب for ؟؟ غريـــبة والله !!! و العجيب أنه وضع الفاصلة المنقوطة بعد الحلقة for .. مع أن البرنامج شغال 100% ! ياريت لو يقوم أحد الإخوان بتوضيح هذه النقطة.
2-الدالة الثانية:
void str_copie (char s1[],char s2[])
{
int i=0;
while(s1!='\0')
{
s2=s1;
i++;
}
s2='\0';
}ما في مشكلة .. ولله الحمد.
3-الدالة الثالثة .. لم أستطع كتابة دالة تكافئها .. وهذه محاولتي:
void str_cmp(char str_1[],char str_2[])
{
int i=0,s1=0,s2=0;
while(str_1!='\0' && str_2!='\0')
{
if(str_1>str_2)
s1++;
if(str_2<str_1)
s2++;
if(str_1==str_2)
s1=s2=1;
i++;
}
if(s1>s2)
cout<<"s1>s2"<<endl;
if(s1<s2)
cout<<"s1<s2"<<endl;
if(s1==s2 && s1==1)
cout<<"s1=s2"<<endl;
}أرجوا من الإخوان الخبراء .. توضيح كيفية استخدام حلقة for الأولى و المساعدة من أجل كتابة دالة تكافئ الدالة strcmp
دمتم في رعاية الله و حفظه.
