Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

التحويل إلى أحرف كبيرة

جزء من قسم Logic & Flow في رحلة C على Coddy — الدرس 23 من 63.

challenge icon

التحدي

سهل

قم بتوسيع برنامج أداة النص المساعدة الخاص بك من الدرس السابق لإضافة وظيفة التحويل إلى أحرف كبيرة (uppercase). يجب أن يقوم برنامجك بما يلي:

  1. مطالبة المستخدم بإدخال جملة قصيرة عن طريق طباعة: Enter a sentence: (بدون سطر جديد في النهاية)
  2. الإعلان عن مصفوفة أحرف (character array) تسمى sentence تحتوي على 200 عنصر لتخزين المدخلات
  3. استخدام scanf مع محدد التنسيق %s لقراءة كلمة واحدة من المستخدم
  4. طباعة الكلمة المخزنة بالتنسيق: You entered: [word]
  5. استخدام strlen() لحساب العدد الإجمالي للأحرف في الكلمة
  6. طباعة عدد الأحرف بالتنسيق: Character count: [count]
  7. طباعة الطول باستخدام strlen() بالتنسيق: Length: [length]
  8. التكرار عبر كل حرف في الكلمة باستخدام حلقة (loop) لعد الحروف المتحركة (vowels)
  9. لكل حرف، تحقق مما إذا كان حرفاً متحركاً (a, e, i, o, u) سواء كان صغيراً أو كبيراً
  10. الاحتفاظ بعداد جاري للحروف المتحركة التي تم العثور عليها
  11. طباعة عدد الحروف المتحركة بالتنسيق: Vowel count: [count]
  12. طباعة Uppercase: ثم استخدام حلقة لتحويل وطباعة كل حرف في الكلمة إلى أحرف كبيرة باستخدام دالة toupper()

تذكر تضمين ملف الترويسة <string.h> لاستخدام دالة strlen() وملف الترويسة <ctype.h> لاستخدام دالة toupper().

حول toupper():
دالة toupper() من <ctype.h> تقوم بتحويل حرف واحد إلى ما يعادله من الأحرف الكبيرة. إذا كان الحرف كبيراً بالفعل أو لم يكن حرفاً، فسيتم إرجاعه دون تغيير.
مثال: toupper('a') تعيد 'A'، و toupper('Z') تعيد 'Z'.
يمكنك استخدامها داخل حلقة لتحويل كل حرف على حدة: printf("%c", toupper(sentence[i]));

هام: رسالة المطالبة Enter a sentence: يجب ألا يتبعها سطر جديد. استخدم printf("Enter a sentence: "); بدون \n.

يجب أن يعرض مخرجك النتائج بالتنسيق التالي:

Enter a sentence: You entered: [word]
Character count: [count]
Length: [length]
Vowel count: [count]
Uppercase: [WORD]

على سبيل المثال، إذا كانت المدخلات هي:

Programming

يجب أن يكون مخرجك:

Enter a sentence: You entered: Programming
Character count: 11
Length: 11
Vowel count: 3
Uppercase: PROGRAMMING

يبني هذا التحدي على الدرس السابق من خلال إضافة وظيفة التحويل إلى أحرف كبيرة باستخدام دالة toupper() من مكتبة <ctype.h>. ستحتاج إلى استخدام حلقة للتكرار عبر كل حرف في السلسلة النصية وتحويله إلى حرف كبير، ثم طباعة النتيجة المحولة.

جرّب بنفسك

#include <stdio.h>
#include <string.h>

int main() {
    printf("Enter a sentence: \n");
    
    char sentence[200];
    scanf("%s", sentence);
    
    printf("You entered: %s\n", sentence);
    
    int char_count = strlen(sentence);
    printf("Character count: %d\n", char_count);
    
    int length = strlen(sentence);
    printf("Length: %d\n", length);
    
    int vowel_count = 0;
    for (int i = 0; i < strlen(sentence); 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);
    
    return 0;
}

جميع دروس Logic & Flow