Scroll to navigation

strsep(3) Library Functions Manual strsep(3)

الاسم

strsep - استخراج رمز من سلسلة محارف

المكتبة

مكتبة سي المعيارية (libc، -lc)

موجز

#include <string.h>
char *strsep(char **restrict stringp, const char *restrict delim);

متطلبات ماكروات اختبار الميزات لـ glibc (انظر feature_test_macros(7)):

strsep():


منذ glibc 2.19:
_DEFAULT_SOURCE
glibc 2.19 وما قبله:
_BSD_SOURCE

الوصف

إذا كان *stringp فارغًا (NULL)، تُعيد الدالة strsep() قيمة NULL ولا تفعل شيئًا آخر. وإلا، تجد هذه الدالة أول رمز في السلسلة *stringp المُحدَّد بأحد البايتات في السلسلة delim. يُنهى هذا الرمز باستبدال المُحدِّد ببايت فارغ ('\0')، ويُحدَّث *stringp ليشير إلى ما بعد الرمز. في حال عدم العثور على مُحدِّد، يُؤخذ الرمز كامل السلسلة *stringp، ويُجعل *stringp فارغًا (NULL).

قيمة الإرجاع

تُعيد الدالة strsep() مؤشرًا إلى الرمز، أي أنها تُعيد القيمة الأصلية لـ *stringp.

السمات

للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).

الواجهة السمة القيمة
strsep() سلامة الخيوط MT-Safe

المعايير

BSD.

التاريخ

4.4BSD.

أُدخلت الدالة strsep() كبديل لـ strtok(3)، لأن الأخيرة لا تستطيع معالجة الحقول الفارغة.

تحذيرات

توخ الحذر عند استخدام هذه الدالة. إذا استخدمتها، فلاحظ أن:

يُفقد هوية الحرف المُحدِّد.

أمثلة

البرنامج أدناه هو نسخة من البرنامج الموجود في strtok(3)، والذي لا يتجاهل المُحدِّدات المتعددة أو الرموز الفارغة:


$ ./a.out 'a/bbb///cc;xxx:yyy:' ':;' '/'
1: a/bbb///cc

--> a
--> bbb
-->
-->
--> cc 2: xxx
--> xxx 3: yyy
--> yyy 4:
-->

مصدر البرنامج

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int
main(int argc, char *argv[])
{

char *token, *subtoken;
if (argc != 4) {
fprintf(stderr, "Usage: %s string delim subdelim\n", argv[0]);
exit(EXIT_FAILURE);
}
for (unsigned int j = 1; (token = strsep(&argv[1], argv[2])); j++) {
printf("%u: %s\n", j, token);
while ((subtoken = strsep(&token, argv[3])))
printf("\t --> %s\n", subtoken);
}
exit(EXIT_SUCCESS); }

انظر أيضًا

memchr(3), strchr(3), string(3), strpbrk(3), strspn(3), strstr(3), strtok(3)

ترجمة

تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.

25 فبراير 2026 صفحات دليل لينكس 6.18