1. Funkcija strncat. Kas tai?
Funkcija strncat sujungia du simbolių masyvus (angl. character array) ar simbolių masyvą ir stringinį literalą (angl. string literal). Ar tiksliau tariant, šioje funkcijoje yra kopijuojamos vieno simbolių masyvo ar stringinio literalo reikšmės į kitą simbolių masyvą. Verta prisiminti, jog pirmasis simbolių masyvas, kuris yra perduodamas šiai funkcijai, turi turėti pakankamai rezervuotos atminties, jog sutalpintų norimą kiekį simbolių iš antro perduoto simbolių masyvo ar stringinio literalo. Žemiau galite matyti, kaip galima naudoti strncat funkciją.
Pavyzdys 1: funkcijos strncat naudojimas C programavimo kalboje.
#
include
<stdio.h>
#
include
<string.h>
int
main
()
{
char
dest[20] =
"Tobulumui r"
;
char
dest2[20] =
"Tobulumui r"
;
char
*src =
"ibu nera"
;
int
kiekis =
3
;
strncat
(dest, src, kiekis);
kiekis =
8
;
strncat
(dest2, src, kiekis);
printf
(
"Kai kiekis yra 3, rezultatas yra : %s\n"
, dest);
printf
(
"Kai kiekis yra 8, rezultatas yra : %s\n"
, dest2);
return
0;
}
Galimas rezultatas:
Kai kiekis yra 8, rezultatas yra : Tobulumui ribu nera
Iš C kodo gabalėlio viršuje (pavyzdys 1) mes galime išvesti keletą išvadų apie strncat funkciją. Pirma, strncat
funkcija keičia tik pirmą perduotą simbolių masyvą (dest
). Antra, simbolių skaičius, kuris yra kopijuojamos iš antro masyvo į pirmą priklauso nuo trečiojo argumento (kiekis
). Kai mes perdavėme kintamąjį kiekis
su reikšme 3 (9-ta eilutė), tada mes nukopijavome ibu
. Kai mes perdavėme tą patį kintamąjį su reikšme 8 (11-ta eilutė), tada mes nukopijavome ibu nera
.
Turbūt jau spėjote suprasti, jog ši funkcija yra vertinga daugelyje situacijų. Visgi, ši funkcija nėra tobula ir, kaip dauguma funkcijų, turi keletą trūkumų. Pirma, strncat
funkcijoje kyla problemų, jeigu pirmas perduotas masyvas neturi pakankamai rezervuotos atminties. Antras trūkumas išryškėja, jeigu pirmas ir antras perduoti masyvai dalinasi rezervuota vieta kompiuterio atmintyje.