أحتاج إلى مساعدة في فهم ما يطلبه التمرين 5-12 في كتاب لغة البرمجة C.
-
27-09-2019 - |
سؤال
K&R C Programming Language: pg. 105
تمديد
entab
وdetab
لقبول الاختزال
entab -m +n
يعني أن علامة التبويب تتوقف عن كل
n
الأعمدة ، بدءا من العمودm
.
entab
يحل محل عدد من المساحات مع حرف علامة التبويب و detab
هل العكس. السؤال الذي لدي يتعلق بتوقف علامة التبويب و entab
. أعتقد ذلك ل detab
من السهل جدًا تحديد عدد المساحات اللازمة للوصول إلى توقف علامة التبويب التالية ، لذلك لا تقلق هناك. مع entab
, ، يعد استبدال المساحات بعلامات تبويب أكثر صعوبة قليلاً لأنني لا أستطيع أن أعرف بالتأكيد حجم علامة TAB إلى توقف علامة التبويب الخاصة بها (ما لم تكن هناك طريقة لمعرفة بالتأكيد).
هل أنا حتى أفكر في هذا الشيء بشكل صحيح؟
المحلول
"Tab stop كل أعمدة n ، بدءًا من العمود M" يخبرك بمدى توقف كل علامة تبويب ، على الأقل عن طريق قراءتي: إنها فقط ن. فقط توقف علامة التبويب الأولى مختلفة ؛ هذا واحد م.
نصائح أخرى
يحتاج Entab إلى العمل عند الوصول إلى مسافات تصل إلى علامة تبويب - ثم يمكن استبدال تشغيل المساحات بحرف علامة تبويب.
على سبيل المثال ، السطر التالي من النص (Ruller موجود للرجوع إليه):
1 1 2 2 2
1 8 2 6 0 4 8
-------+---+---+---+---+---+
this is a line
يجب أن تبدو ما يلي بعد entab -8 +4
:
\t this \tis a line
(لاحظ أنه قد يكون من المعقول أن يكون هناك حرفين لعلامتي تبويب يتبعان "هذا" في السطر ، نظرًا لأن مساحة أو علامة تبويب ستصل إلى توقف علامة التبويب هذه).