عند العمل مع لغة البرمجة سي ، من المهم معرفة كيفية قراءة حرف سلسلة بشكل صحيح حسب الحرف. بعد كل شيء ، هذه المهارة هي التي تسمح لك بمعالجة بيانات الإدخال وتنفيذ الإجراءات اللازمة مع كل حرف في السلسلة. في هذه المقالة ، سننظر في عدة طرق لقراءة حرف سلسلة بحرف في ج وتقديم أمثلة التعليمات البرمجية لكل منها.
وتستند الطريقة الأولى التي سننظر فيها على استخدام وظيفة جيتشار (). يقرأ حرف من لوحة المفاتيح وإرجاع التعليمات البرمجية في شكل أسي. لقراءة السطر بأكمله ، يجب عليك استخدام حلقة أثناء والتحقق من أن حرف القراءة ليس سطرا جديدا (
) أو نهاية الملف (إوف) حرف.
نموذج التعليمات البرمجية
# تشمل
كثافة العمليات الرئيسية () {
ج;
بينما ((ج = جيتشار ())!= '
'&&ج != إوف) {
// الإجراءات مع كل حرف
}
العودة 0;
}
الطريقة الثانية تستخدم وظيفة المسح الضوئي () مع تنسيق ٪ ج. يقرأ حرفا من لوحة المفاتيح ويحفظه إلى المتغير المحدد. لقراءة السطر بأكمله ، يجب عليك استخدام حلقة يتم فيها استدعاء وظيفة المسح الضوئي () حتى حرف سطر جديد (
) واجه.
مثال على الكود
# تشمل
كثافة العمليات الرئيسية () {
شار ج;
بينما (المسح الضوئي ("٪ج " ، &ج) == 1 &&ج != '
') {
// الإجراءات مع كل حرف
}
العودة 0;
}
ويستند الأسلوب الثالث على استخدام وظيفة فجيتس (). يقرأ السلسلة بأكملها جنبا إلى جنب مع حرف السطر الجديد (
) ويحفظه إلى المخزن المؤقت المحدد. لمعالجة سلسلة حرف بحرف ، من الضروري استخدام حلقة يتم فيها الوصول إلى كل حرف بواسطة الفهرس.
نموذج التعليمات البرمجية
# تشمل
كثافة العمليات الرئيسية () {
شارع شار [100];
فجيتس (ستر ، سيزوف (ستر) ، ستدين);
إلى عن على (الباحث الأول = 0; شارع[أنا] != '
'؛أنا {) {
// الإجراءات مع كل حرف
}
العودة 0;
}
الآن لديك العديد من الخيارات لقراءة حرف تلو الآخر لسلسلة في ج.اختر الخيار الأكثر ملاءمة لمهمتك واستخدمه في مشاريع البرامج الخاصة بك.
- باستخدام حلقة بينما لقراءة الأحرف من سلسلة
- استخدام وظيفة فجيتس لقراءة حرف سلسلة حسب الحرف
- طريقة فسكانف: قراءة سلسلة باستخدام التنسيق
- الحصول على أحرف السلسلة باستخدام وظيفة جيتشار
باستخدام حلقة بينما لقراءة الأحرف من سلسلة
في لغة البرمجة ج ، يمكنك استخدام حلقة بينما لقراءة الأحرف بالتتابع من سلسلة. يسمح لك هذا الأسلوب بالمرور عبر حرف السلسلة حسب الحرف وإجراء العمليات اللازمة على كل حرف.
أولا ، تحتاج إلى تحديد السلسلة التي تريد الاعتماد عليها. دعنا نقدم المثال التالي:
# تشمل
كثافة العمليات الرئيسية () {
شار شارع [] = "مثال على سلسلة لقراءة";
الباحث الأول = 0;
بينما (شارع [أنا]!= '\0') {
// تنفيذ العمليات اللازمة على
حرف برينتف ("الحرف: ٪ ج
"،شارع [أنا]);
// انتقل إلى الحرف التالي
أنا++;
}
العودة 0;
}
يقرأ هذا الرمز الأحرف من السلسلة" سلسلة عينة للقراءة " ويعرض كل حرف على الشاشة. تستمر الحلقة حتى يتم الوصول إلى حرف نهاية السطر '\ 0'.
في هذا المثال ، نستخدم المتغير أنا ، وهو عداد الأحرف في السلسلة. تتم قراءة كل حرف باستخدام التعبير شارع [أنا] ثم معالجتها حسب الحاجة.
سيكون إخراج البرنامج لهذا المثال كما يلي:
الرمز: ن
الرمز: ص
الرمز:
الرمز الأول: م
الرمز: ه
الرمز: ص
الرمز:
الرمز: ج
الرمز: ر
الرمز: ص
الرمز: س
الرمز: ك
الرمز:
الرمز الأول:
الرمز: د
الرمز: ل
الرمز: أنا
الرمز: ج
الرمز: ل
الرمز:
الرمز الأول: ج
الرمز:
جيم الرمز: ألف
الرمز: أ
الرمز: ح
الرمز:
أنا الرمز: أنا
وهكذا ، وذلك باستخدام حلقة في حين يسمح لك لقراءة حرف سلسلة من حرف وتنفيذ العمليات اللازمة على كل حرف.
استخدام وظيفة فجيتس لقراءة حرف سلسلة حسب الحرف
فجيتس هي وظيفة في لغة البرمجة ج التي تستخدم لقراءة سلسلة (بما في ذلك أحرف السطر الجديد) من مصدر محدد. يقرأ الأحرف حتى يواجه حرف سطر جديد أو حتى يصل إلى الحد الأقصى لطول السطر.
وظيفة فجيتس لديها بناء الجملة التالي:
| شار * فجيتس (شار * شارع ، كثافة العمليات الأسطوانات ، ملف * تيار) |
أين:
- شارع هو مؤشر إلى مجموعة من الأحرف التي سيتم حفظ سلسلة القراءة.
- الأسطوانات هو الحد الأقصى لطول السلسلة التي يمكن قراءتها (بما في ذلك أحرف السطر الجديد).
- الدفق هو مؤشر إلى كائن نوع ملف يمثل المصدر الذي يجب قراءة السلسلة منه (على سبيل المثال ، إدخال ستدين القياسي أو واصف الملف).
تقوم وظيفة فجيتس بإرجاع مؤشر إلى السلسلة التي تمت قراءتها. في حالة حدوث خطأ أو الوصول إلى نهاية الملف ، ترجع الدالة فارغة.
فيما يلي مثال على استخدام وظيفة فجيتس لقراءة حرف سلسلة حسب الحرف:
"`
# تشمل
# تشمل
كثافة العمليات الرئيسية () {
شارع شار [100];
برينتف ("أدخل السلسلة:");
فجيتس (ستر ، سيزوف (ستر) ، ستدين);
برينتف ("لقد دخلت: ٪ ق" ، شارع);
العودة 0;
}
"`
في هذا المثال ، يقرأ البرنامج سلسلة باستخدام وظيفة فجيتس وإخراجها إلى الشاشة. هنا سيزوف (ستر) يمثل الحد الأقصى لطول السلسلة التي يمكن قراءتها.
عند استخدام وظيفة فجيتس ، تحتاج إلى توخي الحذر حول حجم المخزن المؤقت الذي يتم تخزين سلسلة القراءة. إذا تجاوزت السلسلة الحد الأقصى لطول المخزن المؤقت ، فإن وظيفة فجيتس كتابة جزء فقط من السلسلة إلى المخزن المؤقت ، وسيتم فقدان بقية السلسلة. هذا يمكن أن يؤدي إلى مشاكل أمنية محتملة.
طريقة فسكانف: قراءة سلسلة باستخدام التنسيق
طريقة فسكانف هي واحدة من الطرق لقراءة سلسلة في لغة البرمجة ج. يستخدم التنسيق لتحديد كيفية قراءة البيانات من ملف أو إدخال قياسي.
لقراءة سلسلة باستخدام فسكانف ، يجب تحديد محدد التنسيق "٪ ق". يسمح لك هذا المحدد بقراءة سلسلة من الأحرف التي لا تحتوي على مسافات.
مثال على استخدام طريقة فسكانف لقراءة سلسلة:
# تشمل
كثافة العمليات الرئيسية () {
شارع شار [50];
برينتف ("أدخل السطر:");
فسكانف (ستدين ،" ٪ ق " ، ستر);
برينتف ("قراءة السلسلة: ٪ س
"،شارع);
العودة 0;
}
في هذا المثال ، سيطلب من المستخدم إدخال سلسلة. بعد الدخول ، سيتم قراءة السلسلة باستخدام طريقة فسكانف وعرضها باستخدام وظيفة برينتف. لاحظ أن محدد التنسيق" ٪ س " يستخدم كوسيطة لطريقة فسكنف ووظيفة برينتف.
ومع ذلك ، ينبغي توخي الحذر عند استخدام طريقة فسكانف لقراءة السلاسل. عند استخدام محدد "٪ س " ، لا يوجد فحص تجاوز سعة المخزن المؤقت في فسكانف. هذا يمكن أن يؤدي إلى تجاوز حدود الذاكرة المخصصة وثغرة أمنية محتملة للمتطفلين. لقراءة آمنة من السلاسل ، فمن المستحسن استخدام وظائف أخرى ، مثل فجيتس أو جيتلين ، والتي تسمح لك لتحديد حد على عدد الأحرف التي تم إدخالها والتحقق من تجاوز سعة المخزن المؤقت.
الحصول على أحرف السلسلة باستخدام وظيفة جيتشار
في لغة البرمجة ج ، يمكنك استخدام وظيفة جيتشار لقراءة الأحرف من سلسلة. تقرأ هذه الوظيفة حرفا واحدا من دفق الإدخال ، والذي يمكن أن يكون إما دفق إدخال قياسي (ستدين) أو ملف.
مثال على استخدام وظيفة جيتشار لقراءة سلسلة:
- إعلان متغير نوع كثافة العمليات لتخزين حرف القراءة:
- قراءة الرمز باستخدام وظيفة جيتشار:
- نتحقق مما إذا كان الحرف المقروء هو نهاية السطر أو نهاية الملف:
إنت تش; |
تش = جيتشار(); |