Jak używać funkcji STRNCPY w C ++

Jak używać funkcji STRNCPY w C ++
Istnieje wiele funkcji w C ++ do kopiowania ciągów lub znaków z jednego miejsca do drugiego, które są Strcpy, Strncpy i Memcpy. Różnią się od siebie w zależności od ich funkcji. W tym samouczku omówi strncpy () funkcja w c++.

Jaka jest funkcja strncpy () w c++

Funkcja strncpy () to wbudowana funkcja C ++, która służy do kopiowania stałej ilości znaków z jednego ciągu do drugiego. Funkcja potrzebuje trzech parametrów: ciąg docelowego, który pomieści znaki, ciąg źródłowy, który dostarczy znaków, oraz liczba znaków do kopiowania. Jeśli ciąg źródłowy jest mniejszy niż określona liczba znaków, ciąg docelowy zostanie wyściełany z null znakami do pozostałej długości.

Prototyp funkcji strncpy () podano poniżej.

char *strncpy (char *dest, const char *src, size_t Count);

Jakie są parametry C ++ strncpy ()

Wszystkie parametry strncpy () Funkcja jest wyjaśniona poniżej.

  • Dest: Wskaźnik do tablicy docelowej, do której była treść
  • SRC: Wskaźnik do tablicy źródłowej, z której jest treść
  • liczyć: Największa liczba znaków, które można skopiować z źródła do miejsca docelowego.

Jak działa funkcja strncpy () w c++

strncpy () Funkcja akceptuje trzy argumenty: Dest, src, I liczyć. Sprawdza, czy src ciąg jest zakończony null, a jeśli tak, kopiuje określoną liczbę znaków z src ciąg do Dest strunowy. Jeśli liczba jest mniejsza niż długość src ciąg, pierwsze znaki liczby zostały przeniesione do Dest ciąg i nie są zerowe. Jeśli liczba przekracza długość src, wszystkie postacie z src są kopiowane do Dest, a dodatkowe zakończenie zerowych znaków nie zostały uwzględnione, dopóki wszystkie postacie z liczby nie zostaną napisane.

Podany przykład ilustruje działanie C++ strncpy () funkcjonować.

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

char src_str [] = "piszę kod dla strncpy";
char dest_str [60];
strncpy (dest_str, src_str, strlen (src_str));
Cout<powrót 0;

W tym programie użyliśmy plik nagłówka, ponieważ zawiera on strncpy () funkcjonować. Zdefiniowaliśmy dwa struny jeden to src_str a drugi jest dest_str. strncpy () funkcja, która pobiera dane z Src_str String i kopie to do dest_str. Tutaj strlen (src_str) służy do zliczenia całkowitej liczby znaków z Src_str String.

wyjście programu można pokazać poniżej.

Jakie są problemy z używaniem strncpy () w c++

  • Jeśli w tablicy docelowej nie ma znaku zerowego lub łańcuch nie jest zakończony zerową, nasz program lub kod mogą napotkać problemy prędzej czy później. Niezerninowy ciąg w C ++ stał się ryzykownym kodem, który może zerwać w dowolnym momencie podczas wykonywania programu. Może to spowodować usterkę segmentacji w programie. W rezultacie, strncpy () nie zapewnia, że ​​ciąg docelowy jest zawsze zakończony null, co czyni go ryzykownym kodem dla programu, który piszemy.
  • Ta funkcja nie sprawdza przepełnienia, więc jeśli spróbujemy skopiować ciąg źródłowy do miejsca docelowego, który jest mniejszy niż źródło, otrzymujemy błąd i niezdefiniowane zachowanie.

Wniosek

Aby skopiować dane z jednego ciągu do drugiego, używamy strncpy () w C ++, która jest wbudowaną funkcją w plik nagłówka. W tym artykule omówiliśmy składnię i działanie C++ strncpy Funkcja z przykładem. Podkreśliliśmy również pewne problemy z powodu których strncpy Funkcja może sprawić, że nasz kod był ryzykowny.