strcpy w C
WSTĘP:
strcpy to standardowa funkcja biblioteki C, która kopiuje ciąg z jednej lokalizacji do drugiej. Jest zdefiniowany w pliku nagłówkowym string.h.
Funkcja przyjmuje dwa argumenty: bufor docelowy, w którym będzie przechowywany skopiowany ciąg znaków, oraz ciąg źródłowy, który zostanie skopiowany. Funkcja kopiuje cały ciąg źródłowy, łącznie z terminatorem zerowym, do bufora docelowego.
The C strcpy() funkcjonować kopie zawartość ciągu do innego. Treścią ciągu docelowego będzie zastąpiony z ciągiem źródłowym za pomocą funkcji strcpy(). Jest to określone wewnątrz plik nagłówkowy.
Składnia:
char* strcpy(char* destination, const char* source);
Parametry: Ta metoda akceptuje następujące parametry:
- miejsce docelowe : Wskaźnik do docelowej tablicy znaków, do której ma zostać skopiowana zawartość. source: Wskaźnik do źródłowej tablicy znaków, która ma zostać skopiowana.
Wartość zwracana: A wskaźnik do miejsca docelowego string jest zwracany po skopiowaniu ciągu źródłowego przez funkcję strcpy().
Przykład 1
C
// C program to illustrate> // strcpy() function in C> #include> #include> int> main()> {> > char> str1[] => 'Hello World!'> ;> > char> str2[] => 'GfG'> ;> > char> str3[40];> > char> str4[40];> > char> str5[] => 'GeeksForGeeks'> ;> > strcpy> (str2, str1);> > strcpy> (str3,> 'Copy successful'> );> > strcpy> (str4, str5);> > printf> (> 'str1: %s
str2: %s
str3: %s
str4:%s
'> , str1,> > str2, str3, str4);> > return> 0;> }> |
Wyjście
str1: Hello World! str2: Hello World! str3: Copy successful str4:GeeksForGeeks
PRZYKŁAD 2:
C
#include> #include> int> main()> {> > char> str1[20] => 'Hello'> ;> > char> str2[20];> > strcpy> (str2, str1);> > printf> (> 'str1: %s
'> , str1);> > printf> (> 'str2: %s
'> , str2);> > return> 0;> }> |
Wyjście
str1: Hello str2: Hello
Ważne punkty
- Za pomocą tej funkcji możesz skopiować cały ciąg do ciągu docelowego. Ciągi źródłowe nie są dołączane do ciągów docelowych. W rezultacie zawartość ciągu docelowego zostaje zastąpiona zawartością ciągu źródłowego.
- Nie ma to wpływu na ciągi źródłowe. Po skopiowaniu ciąg źródłowy pozostaje taki sam.
- Aby użyć strcpy(), ciąg.h plik nagłówkowy musi być dołączony.
- W przypadku dłuższego ciągu źródłowego (tablica znaków) strcpy() wykonuje niezdefiniowane zachowanie.
ZALETY I WADY:
Niektóre zalety używania strcpy w C obejmują:
Jest to prosta i łatwa w użyciu funkcja, za pomocą której można szybko i łatwo kopiować ciągi znaków.
Jest to standardowa funkcja biblioteczna, dlatego jest powszechnie dostępna i przenośna na różnych platformach i kompilatorach.
Jest stosunkowo szybki, ponieważ wymaga tylko jednego przejścia przez ciąg źródłowy, aby go skopiować.
Używając strcpy, należy jednak wziąć pod uwagę pewne wady:
Nie sprawdza rozmiaru bufora docelowego, więc możliwe jest nadpisanie bufora i spowodowanie przepełnienia bufora, jeśli ciąg źródłowy jest dłuższy niż bufor docelowy. Może to prowadzić do luk w zabezpieczeniach i innych problemów.
Nie obsługuje prawidłowo nakładających się ciągów. Jeśli ciągi źródłowy i docelowy nakładają się, zachowanie strcpy jest niezdefiniowane.
Nie obsługuje poprawnie znaków null w ciągu źródłowym. Jeśli ciąg źródłowy zawiera znak null, strcpy przestanie kopiować w tym momencie, nawet jeśli w ciągu źródłowym znajdują się dodatkowe znaki.