strcpy(3)

الاسم
strcpy، strcat - نسخ أو تسلسل سلسلة محارف

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

موجز
#include <string.h>

char *strcpy(char *restrict dst, const char *restrict src);
char *strcat(char *restrict dst, const char *restrict src);

الوصف

strcpy()
    تنسخ هذه الدالة سلسلة المحارف المشار إليها بواسطة src، إلى سلسلة محارف في المخزن المؤقت المشار إليه بواسطة dst. المبرمج مسؤول عن تخصيص مخزن وجهة كبير بما يكفي، أي strlen(src) + 1.

    يكافئ

        stpcpy(dst, src)، dst

strcat()
    تسلسل هذه الدالة سلسلة المحارف المشار إليها بواسطة src، بعد سلسلة المحارف المشار إليها بواسطة dst (مع الكتابة فوق بايت الصفر الختامي). المبرمج مسؤول عن تخصيص مخزن وجهة كبير بما يكفي، أي strlen(dst) + strlen(src) + 1.

    يكافئ

        stpcpy(strnul(dst)، src)، dst

قيمة الإرجاع
ترجع هذه الدوال dst.

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
strcpy()، strcat() | سلامة الخيوط | MT-Safe

المعايير
C11, POSIX.1-2008.

التاريخ
POSIX.1-2001، C89، SVr4، 4.3BSD.

تحذيرات
قد لا تتداخل سلسلتا المحارف src و dst.

إذا لم يكن المخزن الوجهة كبيرًا بما يكفي، فالسلوك غير محدد. انظر _FORTIFY_SOURCE في feature_test_macros(7).

يمكن أن تكون strcat() غير فعالة جدًا. اقرأ عن شلميئيل الرسام (https://www.joelonsoftware.com/2001/12/11/back-to-basics/).

أمثلة
    #include <err.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    int
    main(void)
    {
        char    *buf1;
        size_t  len, size;

        size = strlen("Hello ") + strlen("world") + strlen("!") + 1;
        buf1 = malloc(sizeof(*buf1) * size);
        if (buf1 == NULL)
            err(EXIT_FAILURE, "malloc()");

        strcpy(buf1, "Hello ");
        strcat(buf1, "world");
        strcat(buf1, "!");
        len = strlen(buf1);

        printf("[len = %zu]: ", len);
        puts(buf1);  // "Hello world!"
        free(buf1);

        exit(EXIT_SUCCESS);
    }

انظر أيضًا
stpcpy(3)، strdup(3)، string(3)، wcscpy(3)، string_copying(7)

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

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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