Man page - strcat(3)

Packages contains this manual

Available languages:

en fr pl ja ro de

Manual

strcpy

NAZWA
BIBLIOTEKA
SKŁADNIA
OPIS
WARTOŚĆ ZWRACANA
ATRYBUTY
STANDARDY
STANDARDY
ZASTRZEŻENIA
PRZYKŁADY
ZOBACZ TAKŻE
TŁUMACZENIE

NAZWA

stpcpy, strcpy, strcat - kopiuje lub łączy łańcuch znaków

BIBLIOTEKA

Standardowa biblioteka C ( libc , -lc )

SKŁADNIA

#include <string.h>

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

Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros (7)):

stpcpy ():
Od glibc 2.10:
_POSIX_C_SOURCE >= 200809L
Przed glibc 2.10:
_GNU_SOURCE

OPIS

stpcpy ()
strcpy
()

Funkcje kopiują łańcuch, na który wskazuje src , do łańcucha w buforze, na który wskazuje dst . To programista jest odpowiedzialny za alokację odpowiednio dużego bufora docelowego tj. strlen(src) + 1 . Różnicę pomiędzy obiema funkcjami opisano w rozdziale WARTOŚĆ ZWRACANA.

strcat ()

Funkcja dołącza łańcuch, na który wskazuje src , po łańcuchu, na który wskazuje dst (nadpisując jego końcowy bajt null). To programista jest odpowiedzialny za alokację odpowiednio dużego bufora docelowego, tj. strlen(dst) + strlen(src) + 1 .

Implementacja tych funkcji mogłaby wyglądać tak:

char *
stpcpy(char *restrict dst, const char *restrict src)
{
char *p;
p = mempcpy(dst, src, strlen(src));
*p = '\0';
return p;
}
char *
strcpy(char *restrict dst, const char *restrict src)
{
stpcpy(dst, src);
return dst;
}
char *
strcat(char *restrict dst, const char *restrict src)
{
stpcpy(dst + strlen(dst), src);
return dst;
}

WARTOŚĆ ZWRACANA

stpcpy ()

Funkcja zwraca wskaźnik do końcowego bajtu null kopiowanego łańcucha.

strcpy ()
strcat
()

Funkcje te zwracają dst .

ATRYBUTY

Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes (7).

Image grohtml-3998037-1.png

STANDARDY

stpcpy ()

POSIX.1-2008.

strcpy ()
strcat
()

C11, POSIX.1-2008.

STANDARDY

stpcpy ()

POSIX.1-2008.

strcpy ()
strcat
()

POSIX.1-2001, C89, SVr4, 4.3BSD.

ZASTRZEŻENIA

Łańcuchy src i dst nie mogą na siebie nachodzić.

Jeśli bufor docelowy nie jest wystarczającą duży, zachowanie jest niezdefiniowane. Zob. opis _FORTIFY_SOURCE w podręczniku feature_test_macros (7).

strcat () może być bardzo mało wydajny. Proszę zapoznać się z historią o malarzu Shlemielu .

PRZYKŁADY

#include <err.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int
main(void)
{
char *p;
char *buf1;
char *buf2;
size_t len, maxsize;
maxsize = strlen("Witaj ") + strlen("świecie") + strlen("!") + 1;
buf1 = malloc(sizeof(*buf1) * maxsize);
if (buf1 == NULL)
err(EXIT_FAILURE, "malloc()");
buf2 = malloc(sizeof(*buf2) * maxsize);
if (buf2 == NULL)
err(EXIT_FAILURE, "malloc()");
p = buf1;
p = stpcpy(p, "Witaj ");
p = stpcpy(p, "świecie");
p = stpcpy(p, "!");
len = p - buf1;
printf("[len = %zu]: ", len);
puts(buf1); // "Witaj świecie!"
free(buf1);
strcpy(buf2, "Witaj ");
strcat(buf2, "świecie");
strcat(buf2, "!");
len = strlen(buf2);
printf("[len = %zu]: ", len);
puts(buf2); // "Witaj świecie!"
free(buf2);
exit(EXIT_SUCCESS);
}

ZOBACZ TAKŻE

strdup (3), string (3), wcscpy (3), string_copying (7)

TŁUMACZENIE

Tłumaczenie niniejszej strony podręcznika: Jarosław Beczek <bexx@poczta.onet.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net .