9-LEKCIYA PREZENTACIYA
.pdfQatarlardı nusqalaw
Qatar mánisti birinen ekinshisine nusqalaw múmkin. Bul maqsette bir qatar standart funkciyalar anıqlanǵan bolıp, olardıń ayrımlarınıń anıqlamaların keltiremiz. strcpy() funkciyası prototipi.
char* strcpy(char* str1, const char* str2)
kórinisine iye hám bul funkciya str2 qatardaǵı belgilerdi str1 qatarına baytpa-bayt nusqalaydı. Nusqalaw str2 kórsetip turǵan qatardaǵı nol-terminal ushıraǵansha dawam etedi. Sol sebepli, str2 qatar uzınlıǵı str1 qatar uzınlıǵınan úlken emesligine isenim payda etiw kerek, keri jaǵdayda berilgen segmentte str1 qatardan keyin jaylasqan berilgenler “ústine” str2 qatarınıń “artıp qalǵan” bólegi jazılıwı múmkin.
Keyingı programma bólegi “Qatardı nusqalaw!” qatardı Str qatarına nusqalaydı:
char Str[20];
strcpy(Str, ”Qatardı nusqalaw!”);
Kerek bolǵanda qatardıń qandayda bir jerinen baslap, aqırına deyin nusqalaw múmkin. Mısal ushın: “Qatardı nusqalaw!” qatarınan 8-belgisinen baslap nusqa alıw zárúr bolsa, onı tómendegishe sheshiw múmkin:
#include <iostream.h> #include <string.h> int main()
{
char Str1[20] = ”Qatardı nusqalaw!”, Str2[20]; char *kórsetkish = Str1;
kórsetkish += 7; strcpy(Str2, kórsetkish); cout << Str2 << endl; return 0;
}
strncpy() funkciyasınıń strlen() funkciyasınan parıqlı jeri sonnan ibarat, onda bir qatardan ekinshisine nusqalanatuǵın belgiler sanı kórsetiledi. Onıń prototipi tómendegi kóriniske iye:
char* strncpy(char *str1, const char *str2, size_t num);
Eger str1 qatar uzınlıǵı str2 uzınlıǵınan kishi bolsa, artıqsha belgiler “kesip” taslanadı. strncpy() funkciyasınıń isletiliwine mısal keltireyik:
#include <iostream.h> #include <string.h> int main()
{
char Uzın_str[] = "01234567890123456789"; char Qısqa_str[] = "ABCDEF"; strncpy(Qısqa_str, Uzın_str, 4);
cout << "Uzın_str = " << Uzın_str << endl; cout << "Qısqa_str = " << Qısqa_str << endl; return 0;
}
Programmada Uzın_str qatarı basınan 4 belgi Qısqa_str qatarına, onıń aldınǵı mánisleri ústine jaylasadı hám nátiyjede ekranǵa
01234567890123456789
0123EF
qatarlar shıǵarıladı.
strdup() funkciyasına jalǵız uzatıladı. Funkciya qatarǵa sáykes hám júzege kelgen qatar-nusqa funkciyası sintaksisi:
parametr sıpatında qatar deregine kórsetkish yadtan orın ajıratadı, oǵan qatardı
nusqalaydı adresin juwap sıpatında qaytaradı. strdup()
char* strdup(const char* source)
Tómendegi programma bóleginde qatar1 qatardıń nusqası yadtıń qatar2 kórsetken jerinde payda boladı:
char *qatar1 = ”Qatar nusqasın alıw.”; char* qatar2;
qatar2 = strdup(qatar1);