انت هنا الان : شبكة جامعة بابل > موقع الكلية > نظام التعليم الالكتروني > مشاهدة المحاضرة

البرمجة المهيكلة

الكلية كلية تكنولوجيا المعلومات     القسم قسم البرامجيات     المرحلة 1
أستاذ المادة سرى زكي ناجي علوان       3/29/2011 8:22:39 AM

تعريف النصوص (string)

ال  stringفي لغة C++ هو عبارة عن مجموعة من الرموز characters وفي نهاية الstring يوجد بايت يسمى Null characters ويرمز له\O" " . هناك طريقتان لتعريف الstring هما اما باستخدام المصفوفة array او باستخدام الpointer مثال ذلك:

 

char str1[10];  /*Declaring a string containing 10 element using array*/

 

char* str2;     /*Declaring a string using pointer*/

 

 لنفرض ان  str1يحتوي على النص “better c” فان تمثيلها في الذاكرة سوف يكون :

 

str1[0]

str1[1]

str1[2]

str1[3]

str1[4]

str1[5]

str1[6]

str1[7]

str1[8]

str1[9]

b

e

t

t

e

r

 

c

\0

 

بينما اذا كان  str2 يحتوي على النص “better c” فان تمثيلها في الذاكرة سوف يكون :

 

 *str2+0

*str2+1

*str2+1

*str2+3

*str2+4

*str2+5

*str2+6

*str2+7

*str2+8

b

e

t

t

e

r

 

c

\0

 ان الفرق بين الطريقتين هو ان الطريقة الاولى (طريقة المصفوفة) تحجز دائماً عدد معين من العناصر (الحروف والرموز) , وفي مثالنا كانت عشرة عناصر-

 

اما الطريقة الثانية (طريقة الpointer) فان عدد العناصر غير محدد ويكون عدد عناصر المتغير مساوي لعدد عناصر القيمة التي يحملها مضافا اليها الnull character , وفي مثالنا كانت تسعة عناصر-

 

فمثلاً في المثال السابق عندما اعطينا القيمة “better c” -  والتي تتكون من ثمانية عناصر -  للمتغير str1 فانه سوف يبقى آخر عنصر من المصفوفة من غير أستخدام.

 

اما في حالة str 2 فان عدد العناصر كان تسعة عناصر بنفس عدد عناصرالstring ولو غيرنا قيمة str 2 وجعلناها “c++” فقط. فان عدد العناصر سوف يتغير ويصبح ثلاثة عناصر+null char 

 

ومن هنا يتبين لنا ان طريقة الpointer هي طريقة اقتصادية من ناحية الذاكرة والآن لنحاول ان   نعطي str1 القيمة “programming in c++” . ان عدد عناصر str 1 في مثالنا السابق هي عشرة عناصر بينما القيمة التي نحاول ان نعطيها تحتوي على 18 عنصر لذلك فان المتغير str1 سوف يرفض القيمه و ستظهر رسالة خطا تبين ان عدد العناصر اكبر مما ينبغي.

 

اما بطريقة الpointer فان اعطاء القيمة “programming in c++” للمتغير  str2سوف لن تواجه اي مشاكل وسيتغير عدد عناصر  str2تلقائياً بعد اعطاء القيمة ويصبح 18 عنصر بعدد عناصر القيمة التي يحملها وكما يلي:

 

*str2+0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

*str2+17

 

p

r

o

g

r

a

m

m

i

n

g

 

i

n

 

c

+

+

\0

ملاحظة :-

 

يجوز تعريف المتغير باستخدام المصفوفةArray  ثم استخدام عناصره وتغيير قيمتها باستخدام الpointer والعكس صحيح. 

 

 


المادة المعروضة اعلاه هي مدخل الى المحاضرة المرفوعة بواسطة استاذ(ة) المادة . وقد تبدو لك غير متكاملة . حيث يضع استاذ المادة في بعض الاحيان فقط الجزء الاول من المحاضرة من اجل الاطلاع على ما ستقوم بتحميله لاحقا . في نظام التعليم الالكتروني نوفر هذه الخدمة لكي نبقيك على اطلاع حول محتوى الملف الذي ستقوم بتحميله .