التحويل إلى أحرف كبيرة
جزء من قسم المنطق وتدفق التنفيذ في رحلة C على Coddy. الدرس 23 من 63.
التحدي
سهلمدِّد برنامج أدوات النصوص الخاص بك من الدرس السابق لإضافة وظيفة التحويل إلى أحرف كبيرة. يجب أن يقوم برنامجك بما يلي:
- مطالبة المستخدم بإدخال جملة قصيرة عن طريق طباعة:
Enter a sentence:(من دون سطر جديد في النهاية) - التصريح عن مصفوفة محارف باسم
sentenceتحتوي على 200 عنصر لتخزين الإدخال - استخدام
scanfمع محدِّد التنسيق%sلقراءة كلمة واحدة من المستخدم - طباعة الكلمة المخزنة بالتنسيق:
You entered: [word] - استخدام
strlen()لحساب العدد الإجمالي للمحارف في الكلمة - طباعة عدد المحارف بالتنسيق:
Character count: [count] - طباعة الطول باستخدام
strlen()بالتنسيق:Length: [length] - التكرار عبر كل محرف في الكلمة باستخدام حلقة لعدِّ حروف العلة
- لكل محرف، التحقق مما إذا كان حرف علة (a, e, i, o, u) سواءً بالأحرف الصغيرة أو الكبيرة
- الحفاظ على عدّاد مستمر لحروف العلة التي تم العثور عليها
- طباعة عدد حروف العلة بالتنسيق:
Vowel count: [count] - طباعة
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;
}جميع دروس المنطق وتدفق التنفيذ
1أساسيات المؤشرات
ما هو المؤشر؟الإعلان عن المؤشراتعامل العنوان (&)عامل إلغاء المرجعية (*)مؤشرات NULLمراجعة: أساسيات المؤشرات4مشروع: أداة نصوص بسيطة
نظرة عامة على المشروععد الأحرف2المؤشرات والمصفوفات
أسماء المصفوفات كمؤشراتعناصر المصفوفة - المؤشراتالعمليات الحسابية على المؤشراتمقارنة المؤشراتمراجعة: التنقل في المصفوفة باستخدام المؤشرات5المؤشرات والدوال
التمرير بالقيمةتمرير المؤشرات إلى الدوالتعديل المتغيرات عبر المؤشراتمثال كلاسيكي: التبديلتمرير المصفوفات إلى الدوالملخص: وسائط المؤشرات في الدوال8الهياكل والمؤشرات
المؤشرات إلى الهياكلعامل السهم (->)تمرير الهياكل بالقيمةتمرير مؤشرات الهياكلالتخصيص الديناميكي للهياكلمراجعة: تعديل الهياكل باستخدام المؤشرات11تحديات المراجعة النهائية
مراجعة: دمج السلاسل النصية الديناميكيمراجعة: مصفوفة من الـ Structsمراجعة: عداد تكرار الكلمات3مصفوفات الأحرف والسلاسل النصية
السلاسل النصية كمصفوفات charالمُنهي الصفري (Null Terminator)إدخال السلاسل النصية باستخدام scanfاستخدام strlen()استخدام strcpy()استخدام strcat()استخدام strcmp()مراجعة: دوال السلاسل النصية الأساسيةتدرّب بنفسك: مترجم C عبر الإنترنت