| strsep(3) | Library Functions Manual | strsep(3) |
الاسم
strsep - استخراج رمز من سلسلة محارف
المكتبة
مكتبة سي المعيارية (libc، -lc)
موجز
#include <string.h>
char *strsep(char **restrict stringp, const char *restrict delim);
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 |