في البرمجة ، هناك العديد من الحالات التي تحتاج فيها إلى العمل مع سلاسل تحتوي على مسافات. في الممارسة العملية ، غالبا ما تنشأ المواقف عندما يكون من الضروري إدخال سلاسل بمسافات في متغير نوع الحرف. ولكن كيف نفعل ذلك بشكل صحيح وفعال? في هذه المقالة ، سنلقي نظرة على الطرق الرئيسية لتقديم سلاسل بمسافات في ج شار ومشاركة النصائح والتوصيات المفيدة.
واحدة من أسهل الطرق لإدخال سلسلة مع مسافات في ج شار هو استخدام علامات الاقتباس المزدوجة. بناء جملة هذه الطريقة بسيط للغاية: تحتاج إلى إرفاق سلسلة مع مسافات في علامات اقتباس مزدوجة ، ومن ثم تعيينه إلى متغير من نوع شار. على سبيل المثال:
شار شارع [] = "هذا هو سلسلة مع مسافات";
يتيح لك هذا الأسلوب إدخال سلسلة بمسافات بسهولة وسرعة ، ولكن لها قيود. لا يمكن تغيير السلسلة التي تم إدخالها بعد التهيئة ولا يمكن أن تحتوي على أحرف خاصة مثل الأسطر الجديدة أو علامات التبويب. إذا كنت بحاجة إلى العمل مع سلاسل أكثر تعقيدا ، فقد تكون طريقة أخرى مناسبة لك.
طريقة أخرى لإدخال سلسلة مع مسافات في ج شار هو استخدام وظائف الإدخال مثل فجيتس() أو جيتس(). تسمح لك هذه الوظائف بإدخال سلاسل بأي أحرف ، بما في ذلك المسافات والأحرف الخاصة. مثال على استخدام الأقزام () يبدو مثل هذا:
شارع شار [100];
فجيتس (شارع ، 100 ، ستدين);
باستخدام وظيفة يحصل () لديه بعض القيود ويعتبر أقل أمنا ، لذلك في معظم الحالات فمن المستحسن استخدام وظيفة فجيتس ().
- نصائح مفيدة لإدخال سلسلة بمسافات في نوع بيانات الحرف
- العمل مع مجموعة من الشخصيات
- استخدام حلقة لمعالجة الأحرف
- باستخدام وظيفة المسح الضوئي ()
- باستخدام وظيفة يحصل ()
- سؤال وجواب
- كيف يمكنني إدخال سلسلة مع مسافات في متغير شار?
- هل من الممكن إدخال سلسلة مع مسافات في متغير نوع شار باستخدام وظيفة يحصل?
- كيفية معالجة سلسلة مع مسافات في متغير نوع شار في حلقة?
- كيف يمكنني عرض سلسلة مع المسافات المخزنة في متغير نوع شار على الشاشة?
نصائح مفيدة لإدخال سلسلة بمسافات في نوع بيانات الحرف
1. مسافات في الخط
عند إدخال سلسلة بمسافات في نوع بيانات الحرف ، ضع في اعتبارك أن الحرف يمكن أن يحتوي على حرف واحد فقط. هذا يعني أنه إذا كنت تريد حفظ سلسلة بمسافات ، فأنت بحاجة إلى توفير عدد كاف من الأحرف في الحرف.
2 صفيف. باستخدام وظيفة فجيتس
لقراءة بأمان خط مع مسافات الإدخال ، فمن المستحسن استخدام وظيفة فجيتس (). تسمح لك وظيفة فجيتس () بتعيين الحد الأقصى لعدد الأحرف التي يمكن قراءتها من الدفق ، وتشمل معالجة حرف سطر جديد خاص.
3. باستخدام الأقزام مع ستدين
شارع شار [100];
برينتف ("أدخل سلسلة بمسافات:");
فجيتس (ستر ، سيزوف (ستر) ، ستدين);
في هذا المثال ، يتم استخدام فجيتس () لقراءة سلسلة من المدخلات القياسية (ستدين) في مجموعة شار اسمه ستر. يجب أن يكون صفيف ستر مساحة كافية لتخزين السلسلة ، بما في ذلك حرف السطر الجديد ، والتي سيتم إضافتها من قبل وظيفة فجيتس ().
4. معالجة حرف السطر الجديد
بعد استخدام فجيتس () ، تضيف الدالة حرف سطر جديد (
) إلى نهاية سلسلة القراءة. إذا لم تكن بحاجة إلى حرف سطر جديد في السلسلة ، فيمكنك حذفه عن طريق استبداله بحرف نهاية السطر ('\0'). على سبيل المثال:
شارع شار [100];
برينتف ("أدخل سلسلة بمسافات:");
فجيتس (ستر ، سيزوف (ستر) ، ستدين);
سيز_ت لين = سترلين (شارع);
إذا (لين > 0 & & شارع [لين-1]=='
') {
شارع [لين-1] =' \ 0';
}
5. مساحات المعالجة
إذا كنت ترغب في التعامل مع المسافات في السلسلة التي تم إدخالها ، يمكنك استخدام حلقة للتكرار من خلال الأحرف في صفيف شار وتنفيذ العمليات اللازمة لكل حرف.
6. باستخدام وظيفة سسكانف
شارع شار [100];
برينتف ("أدخل سطرا بمسافات:");
فجيتس (ستر ، سيزوف (ستر) ، ستدين);
عدد الأسطوانات;
سسكانف (ستر ،" ٪ د"،#);
طريقة أخرى لقراءة رقم من سلسلة مع مسافات هو استخدام وظيفة سسكانوف (). وظيفة سسكنف () مشابهة ل سكنف () ، ولكن يمكن أن تعمل مع صفائف من الأحرف بدلا من المدخلات القياسية.
7. التحقق من المدخلات
ضع في اعتبارك دائما إمكانية حدوث أخطاء في إدخال البيانات. تحقق من نتائج القراءة للتأكد من قراءة السلسلة بشكل صحيح ولا تحتوي على أخطاء.
8. التعامل مع حالات استثنائية
أخيرا ، ضع في اعتبارك إمكانية حدوث مواقف استثنائية ، مثل تجاوز سعة المخزن المؤقت أو تنسيق السلسلة غير الصحيح. تأكد من أنك قدمت للتعامل مع هذه المواقف وزودت المستخدم بمعلومات حول الخطأ الذي حدث.
العمل مع مجموعة من الشخصيات
مجموعة من الأحرف (نوع شار) هي الأداة الرئيسية للعمل مع السلاسل في لغة البرمجة سي. يتيح لنا العمل مع مجموعة من الأحرف تخزين البيانات النصية وتعديلها ومعالجتها.
في ج ، مصفوفة الأحرف عبارة عن سلسلة من الأحرف تنتهي بحرف فارغ ، والذي يشار إليه باسم '\0'. يشير هذا الحرف الفارغ إلى نهاية السلسلة ويستخدم لتحديد طول السلسلة.
لتهيئة مجموعة من الأحرف ، يمكنك استخدام سلسلة حرفية محاطة بعلامات اقتباس مزدوجة. على سبيل المثال:
شار ميسترينغ [] = "سلسلة المثال";
يمكن استخدام مجموعة من الأحرف لحفظ البيانات النصية ومعالجتها وإجراء المقارنة والنسخ والتسلسل وغيرها الكثير.
عند العمل مع مجموعة من الأحرف ، يوصى بالحرص على تجنب تجاوز سعة المخزن المؤقت والأخطاء الأخرى المرتبطة بمعالجة السلسلة غير الصحيحة. من المهم أيضا ملاحظة أن السلاسل في ج غير قابلة للتغيير ، لذلك إذا لزم الأمر ، قم بتعديل السلسلة وإنشاء مصفوفة جديدة من الأحرف ونسخ البيانات التي تم تغييرها إليها.
يمكن تبسيط العمل مع صفائف الأحرف باستخدام وظائف قياسية من السلسلة.مكتبة ح. على سبيل المثال ، سترلين () ، ستركبي() و ستركات () وظائف تسمح لك لتحديد طول سلسلة ، نسخ سلسلة ، وسلسلة سلاسل ، على التوالي.
يمكن أن يتضمن العمل مع صفائف الأحرف أيضا استخدام الحلقات والمشغلات الشرطية وغيرها لغة ج يبني لمعالجة البيانات وتعديلها.
بعد هذه التوصيات ، سوف تكون قادرة على العمل بشكل أكثر فعالية مع صفائف من الأحرف في اللغة ج وحل المهام المتعلقة بمعالجة البيانات النصية بنجاح.
استخدام حلقة لمعالجة الأحرف
عند العمل مع سلاسل تحتوي على مسافات ، يمكنك استخدام حلقة لمعالجة كل حرف. يتيح لك ذلك إجراء عدد من العمليات ، مثل البحث عن أحرف معينة واستبدال الأحرف وحساب عدد الأحرف والعمليات الأخرى.
مثال على استخدام حلقة لمعالجة الأحرف:
شار شارع [] = "مثال على سلسلة مع مسافات";
الباحث الأول;
إلى عن على (أنا = 0; شارع[أنا] != '\0 ' ؛ أنا i) {
إذا (شارع [أنا]=='') {
// إخراج رسالة أو إجراء عملية أخرى
برينتف ("تم العثور على مسافة في الموضع ٪ د
"،أنا);
}
}
يسمح لك حلقة حتى يتم الوصول إلى نهاية حرف الخط.
. إذا كان الحرف هو الفضاء ، ونحن تنفيذ عملية معينة ، في هذه الحالة ، ونحن إخراج رسالة مع موقف الفضاء وجدت.
وبالتالي ، فإن استخدام حلقة لمعالجة الأحرف يسمح لك بمعالجة السلاسل التي تحتوي على مسافات بشكل فعال وإجراء العمليات اللازمة مع الأحرف الموجودة بداخلها.
باستخدام وظيفة المسح الضوئي ()
وظيفة المسح الضوئي () هي واحدة من وظائف إدخال البيانات الرئيسية في ج.يسمح لك بتلقي البيانات من المستخدم أثناء تنفيذ البرنامج.
للعمل مع وظيفة المسح الضوئي () ، تحتاج إلى توصيل ملف الرأس.
وظيفة المسح الضوئي () لديها بناء الجملة التالي:
مسح ضوئي ("قراءة صيغة" ، ومتغير);
هنا ،" قراءة التنسيق " عبارة عن سلسلة تحتوي على تنسيق لتحديد نوع البيانات المراد قراءتها. يمكن أن تكون تنسيقات القراءة مختلفة ، على سبيل المثال:
- ٪ د-لقراءة الأعداد الصحيحة;
- ٪ و-لقراءة أرقام الفاصلة العائمة;
- ٪ ج-لقراءة الأحرف;
- ٪ س - لقراءة السطور;
- وغيرها.
الوسيطة الثانية من وظيفة المسح الضوئي () هو عنوان المتغير لتخزين قيمة القراءة في.
مثال على استخدام وظيفة المسح الضوئي () لقراءة عدد صحيح:
عدد كثافة العمليات;
المسح الضوئي ("٪د " ، والرقم);
بعد تنفيذ هذه الأسطر من التعليمات البرمجية ، سيتم تخزين قيمة القراءة في متغير الرقم.
لقراءة سلسلة من الأحرف ، بما في ذلك المسافات ، يمكنك استخدام التعليمات البرمجية التالية:
سلسلة شار [100];
سكانف (" ٪ [^
] "،سلسلة);
هنا ٪[^
] يعني أنك بحاجة إلى قراءة جميع الأحرف حتى حرف السطر الجديد.
ومع ذلك ، يجب أن تكون حذرا عند استخدام وظيفة المسح الضوئي (). إذا كانت البيانات المدخلة لا تتطابق مع التنسيق المحدد ، فقد تتصرف الوظيفة بشكل غير متوقع. لذلك ، يوصى بالتحقق من البيانات المدخلة.
ومن الجدير بالذكر أيضا أن وظيفة سكانف () بطيئة نسبيا وغير مرنة جدا للعمل مع إدخال البيانات. في بعض الحالات ، فمن المستحسن استخدام وظائف إدخال البيانات الأخرى ، على سبيل المثال ، فجيتس().
باستخدام وظيفة يحصل ()
وظيفة يحصل () هي واحدة من الطرق لإدخال سلسلة مع مسافات في لغة البرمجة ج ، ولكن لا ينصح للاستخدام بسبب انعدام الأمن.
وظيفة يحصل () يقرأ الأحرف من المدخلات القياسية ويحفظها إلى المخزن المؤقت حتى يواجه حرف سطر جديد (
) أو يصل إلى الحد الأقصى لحجم المخزن المؤقت. تتضمن السلسلة الناتجة حرف سطر جديد وتنتهي بحرف فارغ ('\0') ، مما يشير إلى نهاية السلسلة.
ومع ذلك ، فإن وظيفة يحصل() لا تحقق من طول بيانات الإدخال. إذا كانت السلسلة المدخلة أطول من حجم المخزن المؤقت ، فقد يحدث تجاوز سعة المخزن المؤقت ، مما قد يؤدي إلى ثغرات أمنية خطيرة في البرنامج.
بدلا من استخدام وظيفة جيتس () ، فمن المستحسن استخدام بدائل أكثر أمانا مثل وظيفة جيتس (). تسمح لك وظيفة فجيتس () بتعيين الحد الأقصى لعدد الأحرف للدخول ولا تسمح بتجاوز سعة المخزن المؤقت.
مثال على استخدام وظيفة جيتس ():
# تشمل
كثافة العمليات الرئيسية () {
شارع شار [100];
برينتف ("أدخل السلسلة:");
يحصل (شارع);
برينتف ("السلسلة المدخلة: ٪ س
"،شارع);
العودة 0;
}
في هذا المثال ، يطالب البرنامج المستخدم بإدخال سلسلة ، والتي يحفظها في مجموعة من أحرف ستر. ثم يعرض السلسلة المدخلة على الشاشة.
ومع ذلك ، تجدر الإشارة إلى أن استخدام وظيفة يحصل() غير آمنة ويمكن أن يؤدي إلى تجاوز سعة المخزن المؤقت. لتجنب مثل هذه الحالات ، فمن المستحسن استخدام وظيفة فجيتس() أو غيرها من أساليب إدخال البيانات أكثر أمنا.
سؤال وجواب
كيف يمكنني إدخال سلسلة مع مسافات في متغير شار?
لإدخال سلسلة مع مسافات في متغير شار ، يمكنك استخدام وظيفة المسح الضوئي مع معدل ٪ ج. للقيام بذلك ، حدد البعد من مجموعة شار وحفظ الأحرف إلى مجموعة في حلقة.
هل من الممكن إدخال سلسلة مع مسافات في متغير نوع شار باستخدام وظيفة يحصل?
لا ، لا تدعم وظيفة جيتس إدخال الأحرف بمسافات ، لأنها تعتبر المسافات كمحددات. فمن المستحسن استخدام وظيفة فجيتس لإدخال سلسلة مع مسافات في متغير نوع شار. تتيح لك هذه الوظيفة تحديد عدد الأحرف المراد إدخالها وتخزينها في مصفوفة.
كيفية معالجة سلسلة مع مسافات في متغير نوع شار في حلقة?
لمعالجة سلسلة مع مسافات في متغير شار في حلقة ، يمكنك استخدام وظائف سترلين وستركبي من مكتبة السلسلة.ح. وظيفة سترلين يسمح لك لمعرفة طول السلسلة ، وظيفة ستركبي نسخ السلسلة إلى مجموعة أخرى. يمكنك أيضا استخدام وظيفة سترتوك لتقسيم سلسلة إلى كلمات منفصلة.
كيف يمكنني عرض سلسلة مع المسافات المخزنة في متغير نوع شار على الشاشة?
لعرض سلسلة مع المسافات المخزنة في متغير نوع شار ، يمكنك استخدام وظيفة برينتف مع معدل ٪ ق. يسمح لك هذا المعدل بإخراج مجموعة من الأحرف كسلسلة. إذا كانت السلسلة تحتوي على مسافات ، فسيتم إخراجها أيضا.