طول السلسلة في لغة سي

String Length C Language



السلسلة في لغة C هي مصفوفة من الأحرف تنتهي بحرف فارغ ( 0). طول السلسلة هو عدد الأحرف في السلسلة. في طول السلسلة ' 0' ، لا يتم حساب الحرف.







في المثال الموضح أعلاه ، طول السلسلة ص 6.



في هذا البرنامج التعليمي ، سنعرض أولاً كيفية استخدام ملف وظيفة محددة من قبل المستخدم لحساب طول سلسلة ، ثم سنعرض لك وظيفة مكتبة مضمنة سترلين () . نعرض لك أيضًا استخدامات حجم عامل لسلسلة حرفية.



طول السلسلة باستخدام وظيفة محددة من قبل المستخدم

يمكنك كتابة دالة معرفة من قبل المستخدم والتي ترجع عدد الأحرف في سلسلة.





//Example1.c
#يشمل

intطول سلسلة(شار *ص)
{
intأنا=0؛

في حين(ص[أنا] ! = ' 0')أنا++ ؛

إرجاعأنا؛
}

intالأساسية()
{
شارص[30]= 'سلسلة'؛

printf (طول السلسلة str =>٪ dن'وطول سلسلة(ص))؛

إرجاع 0؛
}

هنا ، نقوم بتكرار حلقة while من أنا = 0 حتى لا نواجه '0' اختلاف الشخصيات. قيمة ال أنا يزداد بنسبة 1 في كل تكرار للحلقة while. عندما تنتهي الحلقة ، فإن قيمة أنا هو طول السلسلة.



طول السلسلة باستخدام وظيفة المكتبة المدمجة

وظيفة المكتبة المدمجة سترلين () يمكن أيضًا استخدامها لتحديد طول السلسلة.

وظيفة strlen ():

الملف الاساسي:

سلسلة.ح

بناء الجملة:

size_t سترلين (مقدار ثابت شار *ص)

دعوى: تأخذ هذه الوظيفة وسيطة من مؤشر النوع إلى char.

قيمة الإرجاع: هذه الدالة ترجع طول السلسلة ص . لاحظ أن size_t هو مجرد اسم مستعار لعدد صحيح بدون إشارة.

//Example2.c
#يشمل
#يشمل

intالأساسية()
{
شارشارع 1[30]='صفيف السلاسل'؛
شار *str2؛
شار *str3؛

str2=شارع 1؛
str3= 'STRING POINTER'؛

printf (طول السلسلة str1 =>٪ ldن'و سترلين (شارع 1))؛
printf (طول السلسلة str2 =>٪ ldن'و سترلين (str2))؛
printf (طول السلسلة str3 =>٪ ldن'و سترلين (str3))؛
printf ('طول السلسلة'سلسلة أحرف'هو =>٪ ldن'و سترلين ('STRING LITERALS'))؛

إرجاع 0؛
}

هنا ، نقوم بتمرير مصفوفة سلسلة ، ومؤشر سلسلة ، وسلسلة حرفية إلى دالة strlen ، وتعيد الدالة طول السلسلة.

طول السلسلة باستخدام sizeof المشغل

يمكننا أيضًا استخدام حجم عامل لطول السلسلة (فقط لسلسلة حرفية). لكن ، علينا طرح 1 من القيمة التي أرجعها هذا العامل ، لأنه يحسب أيضًا الحرف ' 0'. بالنسبة للمصفوفة والمؤشر ، يُرجع العامل sizeof الحجم المخصص للصفيف والمؤشر ، على التوالي.

// مثال 3.c
#يشمل

intالأساسية()
{
شارشارع 1[30] = 'سلسلة'؛
شار *str2=شارع 1؛

printf ('طول 'سلسلة'هو =>٪ dن'و(حجم('سلسلة') - 1))؛
printf (الحجم المخصص لصفيف str1 =>٪ dن'وحجم(شارع 1))؛
printf (حجم مؤشر str2 =>٪ dن'وحجم(str2))؛

إرجاع 0؛
}

هنا ، في السطر رقم 9 ، نمرر السلسلة الحرفية STRING ونحصل على الحجم ، بما في ذلك الحرف ' 0'. لذلك ، نطرح 1 ونحصل على الحجم الفعلي للسلسلة.

عندما نمرر مصفوفة إلى حجم المشغل ، فإنها تُرجع الحجم المخصص للمصفوفة ، وهو 30 ، وعند تمرير مؤشر حرف ، فإنها تُرجع حجم المؤشر.

استنتاج

لذلك ، في هذا البرنامج التعليمي ، أوضحنا لك كيف يمكن حساب طول السلسلة بطرق مختلفة. يمكنك استخدام الطريقة الأنسب لك في التعليمات البرمجية الخاصة بك.