المخرج النهائي
جزء من قسم المنطق وتدفق التنفيذ في رحلة C على Coddy. الدرس 24 من 63.
التحدي
سهلأكمل برنامج أدوات النصوص الخاص بك من خلال دمج جميع الميزات التي أنشأتها في الدروس السابقة في مخرجات واحدة شاملة. يجب أن يقوم برنامجك بما يلي:
- مطالبة المستخدم بإدخال جملة قصيرة من خلال طباعة:
Enter a sentence:(من دون سطر جديد في النهاية: استخدمprintf("Enter a sentence: ")وليسprintf("Enter a sentence: \n")) - تعريف مصفوفة محارف باسم
sentenceتحتوي على 200 عنصر لتخزين الإدخال - استخدام
scanfمع محدد التنسيق%sلقراءة كلمة واحدة من المستخدم - تخزين الكلمة الأصلية في مصفوفة محارف منفصلة لأغراض العرض
- حساب العدد الإجمالي للمحارف باستخدام
strlen() - عدّ حروف العلة من خلال التكرار عبر كل محرف والتحقق مما إذا كان يطابق أي حرف من حروف العلة (a, e, i, o, u) بأحرف صغيرة أو كبيرة
- تحويل الكلمة إلى أحرف كبيرة باستخدام الدالة
toupper()داخل حلقة - عرض جميع النتائج بتنسيق واضح ومنظم، بحيث تظهر كل معلومة في سطر منفصل
تذكّر تضمين الترويسة <string.h> لدوال السلاسل النصية والترويسة <ctype.h> لدوال تحويل المحارف.
يجب أن يعرض الإخراج جميع النتائج بالتنسيق الدقيق التالي:
Enter a sentence: Original: [word]
Characters: [count]
Vowels: [count]
Uppercase: [WORD]مهم: يجب ألا يتبع المطالبة Enter a sentence: سطر جديد. تظهر الكلمة Original: في السطر نفسه مباشرة بعد قراءة الإدخال.
على سبيل المثال، إذا كان الإدخال هو:
Helloفيجب أن يكون الإخراج كما يلي:
Enter a sentence: Original: Hello
Characters: 5
Vowels: 2
Uppercase: HELLOيجمع هذا التحدي النهائي كل ميزات معالجة النصوص التي طوّرتها طوال المشروع: معالجة الإدخال، وعدّ المحارف باستخدام strlen()، وعدّ حروف العلة باستخدام الحلقات والعبارات الشرطية، والتحويل إلى أحرف كبيرة باستخدام toupper(). يجب أن يعرض البرنامج ملخصًا واضحًا ومنظمًا لنتائج تحليل النص.
جرّب بنفسك
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char sentence[200];
printf("Enter a sentence: ");
scanf("%s", sentence);
printf("You entered: %s\n", sentence);
int length = strlen(sentence);
printf("Character count: %d\n", length);
printf("Length: %d\n", length);
int vowel_count = 0;
for (int i = 0; i < length; i++) {
char c = sentence[i];
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ||
c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U') {
vowel_count++;
}
}
printf("Vowel count: %d\n", vowel_count);
printf("Uppercase: ");
for (int i = 0; i < length; i++) {
printf("%c", toupper(sentence[i]));
}
printf("\n");
return 0;
}جميع دروس المنطق وتدفق التنفيذ
1أساسيات المؤشرات
ما هو المؤشر؟الإعلان عن المؤشراتعامل العنوان (&)عامل إلغاء المرجعية (*)مؤشرات NULLمراجعة: أساسيات المؤشرات4مشروع: أداة نصوص بسيطة
نظرة عامة على المشروععد الأحرف2المؤشرات والمصفوفات
أسماء المصفوفات كمؤشراتعناصر المصفوفة - المؤشراتالعمليات الحسابية على المؤشراتمقارنة المؤشراتمراجعة: التنقل في المصفوفة باستخدام المؤشرات5المؤشرات والدوال
التمرير بالقيمةتمرير المؤشرات إلى الدوالتعديل المتغيرات عبر المؤشراتمثال كلاسيكي: التبديلتمرير المصفوفات إلى الدوالملخص: وسائط المؤشرات في الدوال8الهياكل والمؤشرات
المؤشرات إلى الهياكلعامل السهم (->)تمرير الهياكل بالقيمةتمرير مؤشرات الهياكلالتخصيص الديناميكي للهياكلمراجعة: تعديل الهياكل باستخدام المؤشرات11تحديات المراجعة النهائية
مراجعة: دمج السلاسل النصية الديناميكيمراجعة: مصفوفة من الـ Structsمراجعة: عداد تكرار الكلمات3مصفوفات الأحرف والسلاسل النصية
السلاسل النصية كمصفوفات charالمُنهي الصفري (Null Terminator)إدخال السلاسل النصية باستخدام scanfاستخدام strlen()استخدام strcpy()استخدام strcat()استخدام strcmp()مراجعة: دوال السلاسل النصية الأساسيةتدرّب بنفسك: مترجم C عبر الإنترنت