السلام عليكم ورحمة الله وبركاته أما بعد,
أود لو أحد يجيبنى ويساعدنى بشرح كيفية عمل دالة نصية وحرفية وكذلك شرح معاملات الدالة الرئيسية من كل نوع مثل وهل يوجد ماكرو نصى وحرفى.
ولكم جزيل الشكر
السلام عليكم ورحمة الله وبركاته أما بعد,
أود لو أحد يجيبنى ويساعدنى بشرح كيفية عمل دالة نصية وحرفية وكذلك شرح معاملات الدالة الرئيسية من كل نوع مثل وهل يوجد ماكرو نصى وحرفى.
ولكم جزيل الشكر
اقتباسبشرح كيفية عمل دالة نصية وحرفية وكذلك شرح معاملات الدالة الرئيسية من كل نوع مثل وهل يوجد ماكرو نصى وحرفى.
ماذا تقصد بدالة نصية وحرفية , وماذا تريد من الدالة أن تفعل أصلا ؟
لم أفهم من سؤالك أي شيء سوى تلك التي تخص الدالة main
تستخدم معاملات هذه الدالة في سطر الأوامر الخاص بنظام التشغيل ، حيث أن argc يدل على عدد أجزاء سطر الأوامر ، و argv هي المصفوفة التي ستحمل الأمر:
فمثلا في نظام لينوكس هذا الأمر لعرض الترتيب حسب وقت الإنشاء
ls -r
ففي هذه الحالة سيكون argc=2 ،
وسيكون argv[1]=ls
و argv[2]=-r
وهذه الخاصية تمكنك من إرسال أوامر للبرنامج عندما يكون في حالة تشغيل.
وإليك هذا المثال البسيط
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
if(argc!=2) {
printf("You forgot to type your name.\n");
exit(1);
}
printf("Hello %s", argv[1]);
return 0;
}لنفرض مثلا أن هذا البرنامج اسمه name.exe
فلو قمت بكتابة هذا السطر
name tyef
فسوف يخرج لك الآتي
HELLO tyef
هذا بشكل مختصر وسريع.
وأرجو أن توضح بقية سؤالك.
والسلام عليكم
System Engineer
Red Hat Certified Engineer
Red Hat Certificate Number
805010381752078
أنا شاكر ليكم يا إخوانى وأسف إن أكن وضحت سؤالى أما بعد ,
أولا : أقصد بدالة حرفية أو نصية : دالة تعيد قيمة نصية
(string function(string Variables
وأقصد بالة حرفية : دالة تعيد قيمة حرفية
(char function (char variables
مثل : باقى الدوال ولنفرض دالة تعيد قيمة صحيحة :
(int function (int a,int b
أما معاملات الدالة الرئيسسة هما الإثنين دول بس ؟
ولكم جزيل الشكر
تم تعديل هذه المشاركة بواسطة TYEF في 12 فبراير 2005 في 01:16
بالنسبة للدالة main فهذه القياسية، ويمكن أن يختلف الأمر في بعض compiles كما في vc++ .
أما موضوع char,string ،
فهم تقريبا يعملان نفس العمل ولكن string مساحتها التخزينية أكبر ، ويطبق عليها الكثير من العمليات مثل النسخ والمقارنة والجمع وما إلى ذلك.
ويتم التعامل معها من خلال pointers حتى يكون التعامل أسهل وأسرع.
بالمناسبة ما الذي تقصده من :
اقتباسوهل يوجد ماكرو نصى وحرفى
والسلام عليكم
System Engineer
Red Hat Certified Engineer
Red Hat Certificate Number
805010381752078
معلش أنا عارف إنى طولت لكن ماذا تقصد بكلمة قياسية أى ليس لها إلا هذان المعاملان
أما قصدى بالدالة النصية والحرفية انت فهمتنى بس لو تعرف تدلنى على أمثلة ليهم لإنى مش عارف أطبقهم وأقصد بالماكرو هل الماكرو للعمليات الحسابية فقط أم للنصية ايضا.
ولك جزيل الشكر
أخي الحبيب لا عليك.
بالنسبة لكلمة القياسية فأقصد بها المواصفات الخاضعة ل ANSI ، وبالنسبة للدالة main فلا يوجد لديها إلا هذان المعاملان في الحالة القياسية ، وهي الحالة المتبعة في معظم compiles ، وهي الأفضل.
بالنسبة لموضوع string هذا ، فحتى تفهمه جيدا راجع كتاب c++ compelete refernce حيث أني وضعته في هذه المشاركة:
ولو وجدت أي صعوبة فأخوك في الخدمة إن شاء الله.
أما موضوع الماكرو، فيوجد للإثنان الحسابي منها والنصي ، وإليك هذان المثالان الصغيران:
#define LEFT 1 #define RIGHT 0 cout<<RIGHT<<LEFT<<1+LIFT;
وهذا البرنامج سيخرج الآتي
0 1 2
وإليك هذا المثال الذي يوضح استخدام النص مع الماكرو
الشرح التالي هو جزء من الدروس التي أشرحها الآن في لغة سي وسي++ ، وإن شاء الله عندما أنتهي منها سيكون هذا الموقع ثاني موقع أنشر فيه هذا الكتاب.
يمكن أن نتعامل مع الماكرو بحيث أنها تقوم بارسال string إلى معاملها ، وفي هذه الحالة لو أردنا أن نتعامل مع هذا المعامل على أساس أنه يحمل string فيجب أن يكون مسبوقا بالرمز # ومحاط بعلامتي التنصيص " " ، كما في المثال التالي:
#define MONCK(ARGTERM) \
printf("The term " #ARGTERM " is a string\n")
MONCK(A to B);وهذا البرنامج سيخرج الآتي:
The term A to B is a string
System Engineer
Red Hat Certified Engineer
Red Hat Certificate Number
805010381752078
السلام عليكم ,
أنا فعلا شاكرا ليك لانك وصلتنى للى أنا عايزه فلك الشكر مرة أخرة.
السلام عليكم
الاخ برق أجاب وزاد وكفى ولكن لي اضافة جدا بسيطة وهي انك تريددالة تعيد حرف واحد فقط ودالة تعيد سلسلة حرفية لكي تعديد حرف واحد لابد ان تضع نوع الخرج للدالة char وتضع المتغيرات البارميتر المرسله للدالة على حسب استخدامكالمهم ان تعيد حرف واحد من الدالة,اما السلسة الحرفية فأتوقع انه يجب ان يكون نوع الخرج مؤشر الى نص أي char * ايتعرف الدالة بانها تستقبل مؤشر الى نص ثم تستخدمه في جسم الدالة وتعيد مؤشر الى النص ايضا وبذلك يمكنك استقبال سلسلة حرفية باستخدام المؤشرات ع الدوال
اليك مثال على السريع .
#include <iostream.h>
#include <string.h>
char ReturnOneChar( )
{
char c;
cout << "Enter Char : ";
cin >> c;
return c;
}
char * ReturnString( char * pstr )
{
return pstr;
}
int main()
{
char Name[40];
cout << "Enter Name : ";
cin >> Name;
cout << "\n\n Char = " << ReturnOneChar( );
cout << "\n\n String = " << ReturnString(Name);
cout << "\n\n\n";
return 0;
}اتمنى يكون المثال واضح
والسلام عليكم ورحمة الله وبركاته.
اللهم علمنا ما ينفعنا وأنفعنا بما علمتنا أنك أنت العليم الحكيم
سبحان الله وبحمده سبحان الله العظيم
لاحول ولاقوة الا بالله( كنز من كنوز الجنة ).
السلام عليكم ,
والله أنا سعيد إنى لاقى حد بيهتم بمواضيعى كده وفعلا ( بجد مش نفاق ) ألاقى ناس فى منتدى بترد على الأسئلة بذمة و امانة.
هذا الموضوع مغلق.