89
тіркейді.
char*
strdup
(const
char*s);
Жадыны бөледі және
оған s жолының
көшірмесін ауыстырады.
Жадыны бөлгенде
функциялар
қолданылады.
Жолдарды салыстыру
. Жолдарды салыстыру үшін
strcmp
және
strncmp
функциялары қолданылады.
int strcmp(const char *str1, const char *str2)
функциясы
лексикографикалық түрде str1, str2 жолдарын салыстырады және егер str1
жолы str2 жолынан кіші, тең немесе үлкен болса, сәйкесінше –1, 0 немесе 1
мәндерін қайтарады.
int strncmp(const char*str1, const char *str2, size_t n)
функциясы
лексико-графикалық түрде str1, str2 жолдарынан алғашқы n-нен артық емес
символдарды салыстырады және егер str1 жолының
алғашқы n символдары
str2 жолының алғашқы n символдарынан кіші, тең немесе үлкен болса,
сәйкесінше –1, 0 немесе 1 мәндерін қайтарады.
Мысалы.
int main() {
char str1[] = "aa bb";
char str2[] = "aa aa";
char str3[] = "aa bb cc";
printf("%d\n", strcmp(str1, str3));
// -1 мәні алынады
printf("%d\n", strcmp(str1, str1));
// -0 мәні алынады
printf("%d\n", strcmp(str1, str2));
// 1
мәні алынады
printf("%d\n", strncmp(str1, str3, 5)); //
0 мәні алынады
return 1;
}
Жолдарды көшіру.
Жолдарды көшіру үшін
strcpy
және
strncpy
функциялары қолданылады.
char *strcpy(char *str1, const char *str2 )
функциясы str2 жолын str1
жолына көшіреді. str2 жолы аяқталатын
нольдік байтты енгізе отырып,
толығымен көшіріледі. Функция str1-ге көрсеткіш қайтарады.
char *strncpy (char *str1, const char *str2, size_t n )
функциясы str2
жолынан n символдарды str1 жолына көшіреді. Егер str2 жолында n-нен кем
символ болса, онда соңғы нольдік байт str2 жолын қанша n символға дейін
кеңейту қажет болса, сонша рет көшіреді. Функция str1
жолына көрсеткіш
қайтарады.
Мысал.
char str1[80];
char str2 = "Copy string.";
strcpy ( str1, str2 );
printf ( str1 );
//Copy string шығарылады.