العثور على فهرس حرف في سلسلة نصية باستخدام C
عند العمل مع السلاسل النصية في C، ليس من غير الشائع أن ترغب في معرفة فهرس حرف معين داخل تلك السلسلة. ستوفر لك الطرق التقليدية للبحث باستخدام دالة strstr
المؤشر الذي وُجد فيه الحرف، ولكن إذا كنت تبحث بشكل محدد عن موضع ذلك الحرف، قد تجد نفسك في حيرة. لحسن الحظ، هناك حل! دعنا نستعرض كيفية تحديد فهرس حرف في سلسلة نصية بدقة باستخدام دالة strcspn
.
فهم المشكلة
في برمجة C، قد تصبح معالجة السلاسل النصية أحيانًا معقدة. عندما تريد العثور على حرف معين في سلسلة نصية وترغب في موقعه بدلاً من الحصول على مؤشر، قد تتساءل عن الأدوات المتاحة في المكتبة القياسية. قد تكون على دراية بالوظائف مثل strstr
، التي تُرجع المؤشر لأول ظهور لجزء فرعي، ولكن ذلك لا يخبرك مباشرة عن فهرس حرف فردي.
الحل: استخدام strcspn
دالة strcspn
مفيدة جدًا في العثور على فهرس حرف داخل سلسلة نصية. إليك كيف تعمل:
ما هي strcspn
؟
strcspn
هي دالة من المكتبة القياسية تم تعريفها في string.h
. تحسب طول الجزء الأولي من str1
الذي يتكون فقط من الأحرف غير الموجودة في str2
. هذا يعني أنها سترجع فهرس أول ظهور لأي حرف مُعرف في str2
داخل str1
.
نموذج الدالة
size_t strcspn (const char * str1, const char * str2);
مثال عملي
إليك مثال عملي على كيفية استخدام strcspn
للعثور على فهرس حرف في سلسلة نصية:
#include <stdio.h>
#include <string.h>
int main ()
{
char str[] = "fcba73"; // السلسلة التي نبحث فيها
char keys[] = "1234567890"; // الأحرف التي نبحث عنها
int i;
// اعثر على فهرس أول حرف من keys في str
i = strcspn(str, keys);
// إخراج الموضع، مع إضافة 1 للتحويل من فهرس يعتمد على الصفر إلى فهرس يعتمد على الواحد
printf("الرقم الأول في str في الموضع %d.\n", i + 1);
return 0;
}
شرح الكود
- نقوم بتضمين ملفات الرأس الضرورية:
stdio.h
لوظائف الإدخال/الإخراج وstring.h
لمعالجة السلاسل النصية. - نحدد سلسلتنا
str
والأحرف التي نريد البحث عنها فيkeys
. - يسترجع استدعاء
strcspn(str, keys)
فهرس (اعتمادًا على الصفر) لأولى ظهور أي حرف منkeys
موجود فيstr
. - أخيرًا، تُطبع النتيجة، مع تعديلها لتكون قابلة للقراءة البشرية (فهرس يعتمد على الواحد).
النقاط الرئيسية
strcspn
ممتازة للعثور على فهرس أول ظهور للأحرف.- من الضروري تعديل الإخراج لملاءمة فهرسة صديقة للمستخدم.
الخاتمة
يمكن تحقيق العثور على فهرس حرف في سلسلة نصية بسهولة باستخدام دالة strcspn
. تساعدك هذه الدالة في تحديد مكان ظهور حرف داخل سلسلة نصية بسلاسة، مما يمكنك من معالجة السلاسل النصية بشكل أفضل في برامج C الخاصة بك. جربها في مشروع البرمجة التالي لك لترى كيف تبسط مهام بحث السلاسل النصية لديك!