Tutorial 6: Difference between Character and String

السلام عليكم

اليوم راح اتكلم عن فرق بين

character and string

كلهم يؤدي الى نفس الغرض الى هو يقبل الحروف فقط مثل ABCD ولكن يختلف بالطريقة الاستخدام نوع المتغير  تمام.


String

String: ياخذ مجموعه من الأحرف من غير مسافه.

مثال:

A Z I Z

كذا بيكون عندنا 4 أحرف و المخرج راح يكون AZIZ

هنا مثال أوضح:

stringword

أول ملاحظ: نحتاج نضع مكتبة:

Include<string>

نحتاج هذي مكتبة عشان نقدر نستخدم string

والكود الثاني عن عدد الاحرف

length()

طبعآ هذي دالة جاهزه و تستخدمه اذا جيت تحسب كم عدد الاحرف

نرجع درسنا:

مثل ماهو موضح بالصوره اني كتبت فقط كلمة وحده وطبعتها تطلع لي عدد الاحرف مع الكلمة تمام

ولكن اذا جيت اكتب كلمتين و معاها مسافة مثل كذا:

My Hero

ونشوف بالمثال راح يطبعها كلها ولالا!!

Screenshot from 2020-04-30 07-05-07

مثل ماتلاحظون طبع لي فقط اول حرفين و لكن اي شي بعد المسافه راح يلغي.

ولكن نقدر نحل المشكلة هذي بأستخدام الدالة

getline()

هذي الدالة راح تسمح لك او تعطيك مجال حتى بعد المسافه

مثلآ لو بكتب هكذا

I am here

راح يطبع مثل ماهو ولكن راح يحتسب المساحة برضو.

هذا مثال:

Peek 2020-04-30 07-11

مثل ماتلاحظون: اني كتبت كلام ومعاها المسافه ويقبل ولكن مع المسافة

للملاحظة: احنا ماستخدمنا المصفوفات نهائيآ هنا لانه string هو مخزن او مجموعه من characters.

و نقدر نستخدم string  في جمع مثلآ 

name+ name1

أفرض

name = I am

name1 =Aziz

لما نجمعها يصير كذا

I am Aziz

نشوف مثال من هنا:

drinkcoffestring

مثل ماتلاحظون جمعت كلمتين و استخدمت العلامة + او الزائد.

وبس هنا انتهينا من String


Char

char or character 

امره غير عن سترينج ولايحتاج نضع له مكتبة مثل سنترينج 

هذا النوع يقبل حرف واحد فقط الا في حال استخدمنا المصفوفات تمام!

مثال:

char ch = 'A'

لو عملنا هكذا راح يقبل بكل سهوله لانه كل متغير واحد راح يقبل حرف واحد فقط.

لو نبغى نزيد حرف زياده مثلآ بدال A نخليه  AA ماراح يقبل الا في حال وضعنا []

نشوف ونعمل تجربه:

wrongch

مثل مالاحظنا لو اضفنا حرفين ماراح يقبل حتى لو علمنا كذا:

 char ch = 'A','A';

الحين فهمنا تمام ~

طيب ايش الحل؟

نستخدم مصفوفات من غير الحجم

يعني عشان نستخدم char يصير زي string لازم نستخدم []

بحيث الحجم يزيد مع زياده الاحرف تمام.

هنا تجربه من الصوره:

sizechar

مثل مالاحظنا لما حطينا المصفوفات صار يقبل اي احرف زياده بسبب زياده الحجم

مثل ماتلاحظون بالاخير صارت 5 واذا زودنا بيصير 6 وهكذا.

و نقدر نحدد له حجم في حال الضروره.

طيب هل نقدر نستخدمها نخلي المستخدم يدخل مثلآ اسم؟

نقدر بطريقتين ياتسوي لوب او نستخدم الدالة cin.getline

خلينا نجرب ونشوف:

Peek 2020-04-30 17-30

هنا عملت لووب عشان نقدر نستخدم char لما المستخدم يدخل اي اسم 

وايضآ نحتاج نحدد الحجم Size ولكن مشكلته لما نحدد حجم لازم نتأكد الحجم يساوي الكلمة الى بنكتبها مثلآ

زي ماكتبت Aziz و الحجم يكون 4 فقط

وثاني تجربه كتبت Alooh و كتبها كلها الا الاخيره بسبب حجم المصفوفه

ولكن لو كتبنا Iam يبقى حرف واحد ويعتبر مساحه ضائعه.

أو

نستخدم الداله مثل ماعملنا في string و بدون لووب نهائي وأسهل بحيث نوفر المساحات الزايده

cin.getline(ch,80);

طبعآ نستخدم هذا بحيث نقدر ندخل احرف او اسماء مثلآ

Aziz

راح نستخدم 4 مساحات و الباقي يتكنسل عشان نقدر نوفر مساحة ومانضيعها على فاضي.

هذا مثال بالصوره:

stchar

مثل مانلاحظ نحتاج نستخدم الحجم عشان نقدر نكتب اكثر من حرف

واستخدمنا الدالة cin.getline بحيث نقدر نكتب ومع المسافه ولما نضغط انتر خلاص يوقف و لايوجد مساحة زائدة.

واتمنى عجبكم الدرس وصلتكم المعلومة ايش الفرق بين character and string

اشوفكم على خير

فمان الله.