C/strncpy
< C
Deklaracja edytuj
- char *strncpy (char* strTo, const char* strFrom, size_t size);
Plik nagłówkowy edytuj
Argumenty edytuj
- strTo
- wskaźnik do docelowej tablicy znaków.
- strFrom
- wskaźnik do źródłowej tablicy znaków.
- size
- liczba znakow do skopiowania.
Opis edytuj
- Funkcja kopiuje co najwyżej size znaków z tekstu w tablicy strFrom do tablicy strTo. Funkcja kopiuje znak po znaku od początku, aż skopiuje size znaków lub napotka znak '\0', wtedy za resztę znaków do skopiowania wstawia '\0'.
Wartość zwracana edytuj
- Funkcja zwraca wskaźnik na strTo.
Niebezpieczeństwa edytuj
- Tablica strTo powinna być większa od wartości size, ponieważ, w przeciwnym wypadku, może dojść do przepełnienia bufora.[1]
- przekazywanie nielegalnych wskaźników dla argumentów źródłowego lub docelowego[2]
Przykład edytuj
#include <stdio.h>
#include <string.h>
int main()
{
char strTo[30];
const char *strFrom = "Ala ma kota"; // tekst krótszy niż 30 znaków
strncpy (strTo, strFrom, 12); // kopiuje 12 znakow (11 + znak \0)
puts(strTo);
return 0;
}
Uwaga: strncpy nie dostawia znaku '\0', dlatego: