مفهوم الـ Character
“Character” أو للاختصار “Char”، هي أي حرف، مثل (a ،b ،c ،A ،B ،C، …)، أو يتم أيضًا التعامل مع أي رقم مكون من رقم واحد، مثل (0، 1، 2، …)، أو مسافة أو علامة ترقيم أو رموز الخاصة مثل ($، ٪، +، …) يمكن كتابته على جهاز الكمبيوتر. ولعمل “char”، ما عليك سوى وضعهم داخل علامات اقتباس مفردة. على سبيل المثال، تُعرِّف العبارة التالية متغير من نوع “character ” واسمه “ch”، وتقوم بإسناد قيمة “a” إليه:
char ch = 'a';
هنا، “ch” هو متغير من نوع “character”، والذي يمكن أن يحتوي على رمز واحد من مجموعة الرموز المسموح للـ “character”، ويطلق على “a” رمز حرفي أو رمز ثابت. ليس فقط (a, b, c, …) ولكن عندما يتم تخزين أي رقم مثل (1، 2، 3، …) أو أي رمز خاص مثل (!، @، #، $، …) داخل علامات الاقتباس الفردية سيتم التعامل معها على أنها رمز حرفي ويمكن تخصيصها لمتغير من نوع “character”، وبالتالي فإن ما يلي عبارة صحيحة:
char ch = '1';
يستهلك نوع البيانات “character” مساحة من الذاكرة “8 بتات” (أي بايت واحد) مما يعني أنه يمكنك تخزين أي شيء في الـ “character” تقع قيمته (ASCII) بين (-127 إلى 127)، بحيث يمكنه الاحتفاظ بأي من القيم المختلفة البالغ عددها “256” قيمة. يمكن لنوع بيانات “character” تخزين أي من الأحرف المتوفرة على لوحة المفاتيح بما في ذلك الأحرف الخاصة مثل ^، &، *، (، )، _، {، }، إلخ.
لاحظ أنه يمكنك الاحتفاظ فقط بحرف أبجدي واحد أو رقم مكون من رقم واحد داخل علامات الاقتباس المفردة ولا يُسمح بأكثر من حرف أبجدي أو رقم واحد داخل علامات الاقتباس المفردة. إذن العبارات التالية غير صالحة في لغة البرمجة لغة (C):
char ch1 = 'ab'; char ch2 = '10';
تسلسلات الهروب Escape Sequence
تدعم العديد من لغات البرمجة مفهومًا يسمى “Escape Sequence”. وهي عندما يسبق حرف ما بشرطة مائلة للخلف (\) ، يطلق عليه تسلسل الهروب وله معنى خاص للمترجم. على سبيل المثال:
char ch = '';
يسبق الحرف (n) شرطة مائلة للخلف (\)، والتي لها معنى خاص وهو سطر جديد ولكن ضع في اعتبارك أن الشرطة المائلة للخلف (\) لها معنى خاص مع عدد قليل من الأحرف فقط. لن تعطي العبارة التالية أي معنى في برمجة لغة سي وسيتم افتراضها على أنها جملة غير صحيحة:
char ch = '\1';
يُعدّد الجدول التالي تسلسلات الهروب المتوفرة بلغة البرمجة (C):
سلسلة الهروب | الوصف |
t\ | يُدرج مسافة “tab” في النص في هذا الموقع. |
b\ | يمسح مسافة للخلف “backspace” في النص في هذا الموقع. |
n\ | يُدرج سطرًا جديدًا في النص في هذا الموقع. |
r\ | يُرجع كتابة الأحرف إلى بداية النص في هذا الموقع. |
f\ | يُدرج موجز نموذج في النص في هذا الموقع. |
‘\ | يُدرج حرف اقتباس مفرد في النص في هذا الموقع. |
“\ | يُدرج حرف اقتباس مزدوج في النص في هذا الموقع. |
الـ Character في لغات البرمجة:
لغة C
فيما يلي مثال بسيط يوضح كيفية تعريف وتعيين وطباعة “characters” بلغة البرمجة (C):
#include<stdio.h>int main(){char ch1;char ch2;char ch3; ch1 ='a'; ch2 ='1'; ch3 ='$'; printf("ch1: %c", ch1); printf("ch2: %c", ch2); printf("ch3: %c", ch3);}
لغة Java
تتعامل لغة (Java) مع أنواع بيانات “character” كثيرًا بنفس الطريقة التي رأيناها في لفة البرمجة (C). مع ذلك، توفر (Java) دعمًا إضافيًا لمعالجة الأحرف. البرنامج أدناه مكافئ للمثال السابق:
publicclassDemoJava{publicstaticvoid main(String[]args){char ch1;char ch2;char ch3; ch1 ='a'; ch2 ='1'; ch3 ='$';System.out.format("ch1: %c", ch1);System.out.format("ch2: %c", ch2);System.out.format("ch3: %c", ch3);}}
لغة Python
لا تدعم لغة (Python) أي نوع من أنواع بيانات “character” ولكن يتم التعامل مع جميع الأحرف كـ “string”، وهي سلسلة من الأحرف. في لغة بايثون لا تحتاج إلى أي ترتيب خاص أثناء استخدام حرف واحد. فيما يلي برنامج مكافئ للمثالين السابقين مكتوب بلغة بايثون:
ch1 ='a'; ch2 ='1'; ch3 ='$';print"ch1: ", ch1 print"ch2: ", ch2 print"ch3: ", ch3
وعندما يتم تنفيذ البرامج جميعا أعلاه، فإنها ستنتج النتيجة التالية:
ch1: ach2: 1 ch3: $