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

استخدام strlen()

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

لقد تعلمت كيفية قراءة السلاسل النصية من مدخلات المستخدم، ولكنك الآن بحاجة إلى طريقة لتحديد طول تلك السلاسل. توفر لغة C دالة strlen() من مكتبة <string.h> خصيصاً لهذا الغرض.

تقوم الدالة strlen() بحساب عدد الأحرف في سلسلة نصية، وتتوقف عندما تصل إلى النهاية الصفرية \0. والأهم من ذلك، أنها لا تتضمن النهاية الصفرية في حسابها - فهي تحسب فقط الأحرف المرئية الفعلية.

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

char word[] = "Hello";
int length = strlen(word);
printf("Length: %d\n", length);  // يطبع: Length: 5

لاستخدام strlen()، يجب عليك تضمين الترويسة <string.h> في الجزء العلوي من برنامجك. تأخذ الدالة سلسلة نصية كمعامل لها وتعيد عدداً صحيحاً يمثل عدد الأحرف قبل علامة الإنهاء الفارغة (null terminator).

هذه الوظيفة مفيدة بشكل خاص عندما تحتاج إلى معرفة مقدار المساحة التي تشغلها سلسلة نصية، أو التحقق من طول المدخلات، أو إجراء عمليات تعتمد على حجم السلسلة. إنها واحدة من أكثر وظائف السلاسل النصية استخداماً في برمجة C.

challenge icon

التحدي

سهل

اكتب برنامجاً بلغة C يقرأ كلمات متعددة من الإدخال ويحلل أطوالها باستخدام دالة strlen(). يجب على برنامجك القيام بما يلي:

  1. قراءة عدد صحيح n يمثل عدد الكلمات التي سيتم معالجتها
  2. لكل كلمة من الكلمات الـ n:
    • الإعلان عن مصفوفة أحرف (character array) تحتوي على 50 عنصراً لتخزين الكلمة
    • قراءة الكلمة باستخدام scanf
    • استخدام strlen() لحساب طول الكلمة
    • طباعة الكلمة وطولها بالتنسيق المحدد
  3. بعد معالجة جميع الكلمات، قم بحساب وطباعة العدد الإجمالي للأحرف في جميع الكلمات
  4. إيجاد وطباعة طول أطول كلمة تم العثور عليها

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

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

Word: [word] - Length: [length]
Word: [word] - Length: [length]
...
Total characters: [total]
Longest word length: [max_length]

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

3
hello
programming
C

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

Word: hello - Length: 5
Word: programming - Length: 11
Word: C - Length: 1
Total characters: 17
Longest word length: 11

يختبر هذا التحدي فهمك لاستخدام strlen() لقياس أطوال السلاسل النصية، ومعالجة سلاسل نصية متعددة باستخدام الحلقات التكرارية (loops)، وإجراء الحسابات بناءً على بيانات طول السلسلة.

ورقة مرجعية

تقوم الدالة strlen() من المكتبة <string.h> بحساب عدد الأحرف في السلسلة النصية، باستثناء حرف الإنهاء الفارغ \0:

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

char word[] = "Hello";
int length = strlen(word);
printf("Length: %d\n", length);  // يطبع: Length: 5

تأخذ الدالة سلسلة نصية كمعامل لها وتعيد عدداً صحيحاً يمثل عدد الأحرف المرئية قبل حرف الإنهاء الفارغ.

جرّب بنفسك

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

int main() {
    // قراءة عدد الكلمات
    int n;
    scanf("%d", &n);
    
    // متغيرات لتتبع الإجماليات
    int total_characters = 0;
    int max_length = 0;
    
    // TODO: اكتب كودك هنا
    // معالجة كل كلمة باستخدام حلقة (loop)
    // لكل كلمة:
    // - تعريف مصفوفة أحرف بـ 50 عنصراً
    // - قراءة الكلمة باستخدام scanf
    // - حساب الطول باستخدام strlen()
    // - طباعة الكلمة وطولها
    // - تحديث total_characters و max_length
    
    // طباعة النتائج النهائية
    printf("Total characters: %d\n", total_characters);
    printf("Longest word length: %d\n", max_length);
    
    return 0;
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow