كيفية استخدام C ++ String Literal

How Use C String Literal



لوحة مفاتيح الكمبيوتر بها أحرف مطبوعة عليها. عندما تضغط على مفتاح ، ترى الحرف على الشاشة. ملاحظة: الفضاء هو أيضا حرف. السلسلة الحرفية هي سلسلة من الأحرف. تشرح هذه المقالة كيفية استخدام القيم الحرفية لسلسلة C ++. يجب أن تعرف عن مصفوفات ومؤشرات C ++ لفهم هذه المقالة.

حرف حرفي

الحرف الحرفي هو حرف في علامات الاقتباس الفردية. وبالتالي،







شارالهوية 1= 'إلى'؛ شارالهوية 2= 'ب'؛ شارالهوية 3= '4'؛ شارالهوية 4= '6'؛

كلها تعريفات مختلفة للشخصيات. لاحظ أن الرقم الموجود في علامات الاقتباس الفردية هو حرف وليس عددًا صحيحًا.



تسلسل الهروب مثل (انظر أدناه) في علامات الاقتباس الفردية ، هو حرف. وبالتالي،



شارالهوية 1= ''؛

هي شخصية.





الرمز الفردي بين علامتي الاقتباس ليس حرفًا ؛ إنها سلسلة من حرف واحد. لذا فإن A أو c أو 2 ليس حرفًا ولكنه سلسلة من حرف واحد لكل منهما.

يمكن إعادة تعيين متغير char ، لاحقًا في البرنامج ، على النحو التالي:



شارالهوية= 'x'؛
الهوية= 'و'؛

لإيقاف تغيير حرف مخصص لمعرّف ما ، لاحقًا في البرنامج ، اسبق التعريف بالكلمة المحجوزة ، const ، على النحو التالي:

مقدار ثابت شارالهوية= 'د'؛

يُقال إن المتغير ident-only للقراءة فقط.

سلسلة حرفية

السلسلة الحرفية هي سلسلة من الأحرف بين علامتي اقتباس. وبالتالي،

شارالهوية 1[] = 'انا احبك'؛ شارالهوية 2[] = أكره 3 منكم؛ شارالهوية 3[]
= 'نحن العالم'؛ شارالهوية 4[] = 'مرحبا بالعالم!'؛

كلها تعريفات مختلفة لسلسلة حرفية. لاحظ استخدام علامات الاقتباس المزدوجة. لا يوجد شيء مثل المتغير العادي لسلسلة. السلسلة الحرفية هي مصفوفة من الأحرف ، حيث يتم تحديد التسلسل بـ بدلاً من التحديد بـ {}. لا يتم الفصل بين الأحرف بفاصلات. يمكن وضع أي رقم أكبر من عدد الأحرف في السلسلة الحرفية بين قوسين مربعين. ومع ذلك ، من الأفضل ترك الأقواس المربعة فارغة.

لا يعتبر الحرف الواحد في علامات الاقتباس المزدوجة حرفًا ؛ إنها سلسلة من حرف واحد. لذا فإن A أو c أو 2 ليست حرفًا ، ولكنها سلسلة من حرف واحد لكل منهما.

لا يسمح متغير السلسلة بإعادة تخصيص الحرف الكامل ، لاحقًا في البرنامج - انظر أدناه. ومع ذلك ، يمكن إعادة تخصيص الأحرف الفردية - انظر أدناه.

اقتباس مفرد ومزدوج بالحرف أو الحرفي

للحصول على اقتباس واحد كشخصية ، افعل شيئًا مثل ،

شارالهوية= ' ''؛

للحصول على اقتباس مزدوج كحرف في سلسلة حرفية ، افعل شيئًا مثل ،

شارالهوية[] = 'بعيدا'قرص مضغوط

يتم استخدام الشرطة المائلة للخلف في تسلسل هروب لتجنب التعارض مع المحددات. للحصول على اقتباس مزدوج كشخصية ، ليست هناك حاجة للشرطة المائلة للخلف: 'حسنًا. للحصول على اقتباس واحد في سلسلة حرفية ، ليست هناك حاجة للشرطة المائلة للخلف: ab’cd حسنًا.

نظرًا لاستخدام الشرطة المائلة للخلف للهروب من حرف ، يجب إفلاته بشرطة مائلة عكسية أخرى عند استخدامه كحرف أو في سلسلة حرفية.

تسلسل الهروب

تسلسل الهروب هو أحد:

'؟ \ إلى ب F ن r> t الخامس

عادةً ما يتم كتابة كل تسلسل هروب إما كحرف ضمن علامات الاقتباس المفردة أو كتسلسل هروب ضمن علامات الاقتباس المزدوجة.

  • ': يستخدم كحرف اقتباس مفرد ، ضمن علامات اقتباس مفردة.
  • : يستخدم كحرف اقتباس مزدوج ، داخل حرفي.
  • ؟ : حيث ؟ هو حرف محجوز ، يجب تخطيه حرفياً.
  • \: يجب تخطي الشرطة المائلة للخلف كحرف أو سلسلة حرفية ، حتى لا ينتج عنها معنى آخر.
  • a: يُطلق جرس الإنذار مرة واحدة ، عند استخدامه كحرف أو ضمن سلسلة حرفية.
  • b: ينتج عنه مسافة للخلف في الشاشة ضمن سلسلة حرفية ، مع إزالة الحرف السابق.
  • f: يتسبب في تغذية الصفحة التالية للطابعة عند استخدامها كحرف أو داخل حرفي.
  • r: إرجاع المؤشر ، حيث سيتم طباعة الحرف التالي ، ولكن ضمن السطر الحالي.
  • n: إرجاع المؤشر إلى بداية السطر التالي أو فقط إلى السطر التالي ، حسب نظام التشغيل.
  • t: إنشاء علامة تبويب أفقية.
  • v: إنشاء علامة تبويب عمودية.

العمليات مع الشخصيات

سلسلة

في التعريف ، يمكن ربط سلسلتين حرفيتين بمسافة على النحو التالي:

شارالهوية[] = 'abc' 'def'؛
كلفة<<الهوية<< 'ن'؛

الإخراج هو: abcdef. يمكن أن يمتد هذا التعريف إلى أكثر من حرفين. ملاحظة: البيان هو تعريف ، وليس مجرد إحالة. يمكن أن يستمر التعريف حتى السطر التالي بمسافة تفصل بين السطور على النحو التالي:

شارالهوية[] = 'abc' 'def'
'أخذ ملاحظة'؛
كلفة<<الهوية<< 'ن'؛

الإخراج هو ، abcdefghi.

ملاحظة: لا يمكن ربط الأحرف بهذه الطريقة ، حيث لا يمكن أن تحتوي علامات الاقتباس المفردة للحرف على أكثر من رمز واحد.

عوامل المساواة

نفس الأحرف في نفس الحالة متساوية. لن يكونوا متساويين إذا لم يكونوا من نفس الحالة. انصح،

نتيجة منطقية= 'ب' == 'ب'؛
كلفة<<نتيجة<< 'ن'؛

== تعني يساوي ، بينما = تعني تخصيص لـ وليس يساوي. الناتج هو 1 على صواب. انصح،

نتيجة منطقية= 'ب' == 'ب'؛
كلفة<<نتيجة<< 'ن'؛

الناتج هو 0 للخطأ. انصح،

نتيجة منطقية= 'ب' == 'ج'؛
كلفة<<نتيجة<< 'ن'؛

الناتج هو 0 للخطأ. انصح،

نتيجة منطقية= 'ب' ! = 'ب'؛
كلفة<<نتيجة<< 'ن'؛

! = تعني عدم المساواة ، بينما = تعني التخصيص وليس لا يساوي. الناتج هو 0 للخطأ. انصح،

نتيجة منطقية= 'ب' ! = 'ب'؛
كلفة<<نتيجة<< 'ن'؛

الناتج هو 1 على صواب. انصح،

نتيجة منطقية= 'ب' ! = 'ج'؛
كلفة<<نتيجة<< 'ن'؛

الناتج هو 1 على صواب.

إذن ، == و! = عاملان للمساواة.

العوامل العلاقية

بالنسبة للأحرف العادية في C ++ ، بترتيب تصاعدي ، تأتي الأرقام قبل الأحرف الكبيرة ، والتي تأتي قبل الأحرف الصغيرة.

وبالتالي= شرح بالمثل.

السلسلة الحرفية ككائن

المصفوفة هي مؤشر ثابت لبداية تسلسل نوع بيانات معين. وبالمثل ، فإن السلسلة هي مؤشر ثابت لبداية تسلسل الأحرف. قارن التعاريف التالية:

intarr[] = {3و 4و 5و 6و 7}؛
شارص[] = {'في'و 'أو'و 'م'و 'إلى'و 'ن'}؛
شارستريب[] = 'النساء'؛

المصفوفة الأولى هي مصفوفة من ints وتحتوي على خمسة عناصر. المصفوفتان الثانية والثالثة عبارة عن مصفوفتين من الأحرف بأسماء مختلفة ، ولكن نفس عدد العناصر. المصفوفتان الثانية والثالثة متماثلتان ، لكن لأسمائهما. يتم تحديد محتوى نص المصفوفة الثانية بواسطة الأقواس ؛ يتم فصل الأحرف بفاصلات وكل حرف بين علامتي اقتباس مفردتين. يتم تحديد محتوى نص المصفوفة الثالثة بعلامات اقتباس مزدوجة ؛ لا يتم الفصل بين الأحرف بفواصل وكل حرف ليس بين علامتي اقتباس مفردة. المصفوفتان الثانية والثالثة هما طريقتان لإنتاج سلسلة ، والطريقة الثالثة هي الطريقة الأفضل.

arr هو مؤشر ثابت للعنصر الأول من صفيفها ، مما يعني أن arr ستشير دائمًا إلى المكان الذي يحتوي على عدد صحيح ، 3 حتى إذا تم تغيير قيمة 3. حجم المصفوفة ، خمسة عناصر ، لا يظل ثابتًا حقًا. ومع ذلك ، يمكن تغيير كل من قيم المصفوفة.

str هي مؤشر ثابت للعنصر الأول من صفيفها ، مما يعني أن str ستشير دائمًا إلى الموقع الذي يحتوي على الحرف ، 'w' حتى إذا تم تغيير قيمة 'w'. حجم مصفوفة الأحرف ، خمسة عناصر ، لا يظل ثابتًا حقًا. ومع ذلك ، يمكن تغيير كل قيمة من القيم الحرفية.

stri هو مؤشر ثابت للعنصر الأول من الحرف (المصفوفة) الخاص به ، مما يعني أن ستريب سوف يشير دائمًا إلى الموقع الذي يحتوي على الحرف ، حتى إذا تم تغيير قيمة w. حجم السلسلة الحرفية (المصفوفة) ، خمسة عناصر ، لا يظل ثابتًا حقًا. ومع ذلك ، يمكن تعديل كل قيمة من القيم الحرفية.

ما هو ثابت في مصفوفة أو سلسلة حرفية؟ يبقى عنوان الذاكرة الخاص بالعنصر الأول من المصفوفة أو الحرف الحرفي كقيمة لاسم (المعرف) للمصفوفة أو حرفية ، ولا يمكن تغييره. حسنًا ، حجم المصفوفة أو الحجم الحرفي لا يظل ثابتًا حقًا. يمكن تغيير كل قيمة في المصفوفة أو حرفية. يوضح الكود التالي كيف تم تغيير العنصر الرابع لكل من المصفوفات:

intarr[] = {3و 4و 5و 6و 7}؛
شارص[] = {'في'و 'أو'و 'م'و 'إلى'و 'ن'}؛
شارستريب[] = 'النساء'؛

arr[3] = 9؛
ص[3] = 'و'؛
ستريب[3] = 'و'؛

كلفة<<arr[3] << 'ن'؛
كلفة<<ص<< 'ن'؛
كلفة<<ستريب<< 'ن'؛

الخرج هو:

9
النساء النساء
النساء

لاحظ أن عناصر سلسلة حرفية محددة ، مثل التعريف الثالث أعلاه ، يمكن الوصول إليها باستخدام فهرس المصفوفة (منخفض). ويرد أدناه سبب السطر الثاني من الناتج.

تعريف منخفض

لاحظ أنه في التعريفات أعلاه ، لا يوجد عدد صحيح للمخطوطة. عندما يتعذر تحديد عدد العناصر بسهولة ، بواسطة المبرمج ، يجب حذف العدد الصحيح للرقم السفلي. مهما كانت الحالة ، يجب ألا يقل العدد الصحيح عن عدد العناصر في المصفوفة.

بالنسبة للسلسلة الحرفية ، يجب أن يكون العدد الصحيح أعلى من عدد الأحرف في السلسلة بمقدار 1 على الأقل. هذا لأن الحرف الفارغ ( 0) يُضاف دائمًا بواسطة المترجم ، في نهاية المصفوفة التي تكون سلسلة ، محددة بعلامات اقتباس مزدوجة. لا يتم إضافة الحرف الفارغ في نهاية المصفوفة الثانية أعلاه ، لأنه ليس سلسلة رسمية. المصفوفة الثالثة هي سلسلة رسمية. يوضح الكود التالي الحد الأدنى من القيم المنخفضة.

intarr[5] = {3و 4و 5و 6و 7}؛
شارص[5] = {'في'و 'أو'و 'م'و 'إلى'و 'ن'}؛
شارستريب[6] = 'النساء'؛

من أجل جعل التعريف الثاني سلسلة رسمية ، يجب إضافة الحرف الفارغ على النحو التالي:

intarr[5] = {3و 4و 5و 6و 7}؛
شارص[6] = {'في'و 'أو'و 'م'و 'إلى'و 'ن'و ' 0'}؛
شارستريب[6] = 'النساء'؛

يجب أن يكون الإخراج الآن ،

9
النساء
النساء

بدون المرأة الثانية. لاحظ أن الرقم المنخفض المقابل للمصفوفة الثانية هو 6 ، وليس 5 كما كان.

قيم حرفية ثابتة

لإيقاف تعديل أي حرف في علامتي الاقتباس المزدوجة المخصصة لمعرف ما ، لاحقًا في البرنامج ، اسبق التعريف بالكلمة المحجوزة ، const ، على النحو التالي:

مقدار ثابت شارالهوية[] = 'انا احبك'؛

العمليات باستخدام String Literals

عمليات المساواة

عوامل تشغيل المساواة هي == و! =. عندما تتم مقارنة المتغيرات (المعرفات) لسلسلتين ، فإن مؤشرات (عناوين) العناصر الحرفية هي التي ينتهي بها الأمر إلى المقارنة ؛ هذا خاطئ. لمقارنة السلاسل ، يجب مقارنة القيم الحرفية ، كما في الكود التالي:

نتيجة منطقية= 'النساء' == 'النساء'؛
كلفة<<نتيجة<< 'ن'؛

الناتج هو 1 على صواب. تتم المقارنة بطريقة القاموس ، ولكن مع ظهور الأرقام أولاً بترتيب تصاعدي ، قبل الأحرف الكبيرة ، التي تأتي قبل الأحرف الصغيرة. ناتج الكود التالي هو 0 ، للخطأ.

نتيجة منطقية= 'النساء' ! = 'النساء'؛
كلفة<<نتيجة<< 'ن'؛

العوامل العلائقية مع سلسلة Literals

لا تعمل العوامل العلائقية مع السلاسل الحرفية.

سلسلة حرفية خام

السلسلة الأولية الحرفية ، تسمح بعرض سلسلة كما تمت كتابتها ، مع تجاهل تسلسل الهروب واحترام الأسطر الجديدة. ضع في اعتبارك الكود التالي:

شارص[] =ص'(abc\د efg هو
كلمنن'
'opq
rst) '؛
كلفة<< str << '
ن

الخرج هو:

abc \ d efg he
klmn nopq
أولا

في الكود ، تبدأ السلسلة الحرفية الأولية بـ R ، متبوعة بـ (. تنتهي بـ) و.

C ++ أنواع حرفية السلسلة الرئيسية

شار

نوع char هو نوع C ++ الأصلي ، وعادةً ما يخزن حرفًا في 8 بت.

char16_t

هذا يخزن شخصية في 16 بت.

char32_t

هذا يخزن شخصية في 32 بت.

wchar_t

char16_t و char32_t هما حرفان عريضان. wchar_t هو حرف عريض خاص بحقوق الملكية ومعرّف بالتنفيذ.

استنتاج

الحرف الحرفي هو حرف واحد في علامات الاقتباس الفردية. تسلسل الهروب هو حرف يمكن أن يكون أيضًا بين علامتي اقتباس مفردة. السلسلة الحرفية هي سلسلة من الأحرف بين علامتي اقتباس. السلسلة الحرفية هي مجموعة من الأحرف تنتهي بـ 0. تعمل عوامل المساواة والعلائقية مع الأحرف الحرفية. تعمل عوامل المساواة مع السلاسل الحرفية ، لكن العوامل العلائقية لا تعمل مع السلاسل الحرفية. يمكن استخدام معرفات الأحرف في المقارنات ، ولكن لا ينبغي استخدام معرفات السلسلة في المقارنات. تسمح السلسلة الحرفية الأولية بعرض سلسلة كما تمت كتابتها ، مع تجاهل تسلسل الهروب واحترام الأسطر الجديدة.

كريس