Тәттібеков Қ. С. Раимбаева С.Ә. С/С++ тілінде программалау негіздері


 Жолдарды өңдеу стандартты функциялары



Pdf көрінісі
бет59/79
Дата15.11.2023
өлшемі1,39 Mb.
#124059
түріПрограмма
1   ...   55   56   57   58   59   60   61   62   ...   79
 
6.5.2 Жолдарды өңдеу стандартты функциялары 
string.h
тақырыптық файлында жолдармен жұмыс істеуге арналған 
арнайы кітапханалық функциялар бар. Осы функциялардың кейбіреуін 
қарастырайық: 
Функция прототипі 
Қысқаша 
сипатталуы 
Ескерту 
unsigned 
strlen
(const 
char*s); 
s жолының ұзындығын 
есептейді. 
int 
strcmp
(const 
char*s1, const char 
*s2); 
s1 және s2 жолдарын 
салыстырады.
Егер s1теріс болады, егер s1==s2, 
онда нәтижесі 0-ге тең, 
егер s2>s1 – нәтижесі оң 
болады. 
int 
strcnmp
(const 
char*s1, const char 
*s2); 
s1 және s2 жолдарының 
алғашқы n символдарын 
салыстырады. 
Егер s1теріс, егер s1==s2, онда 
нәтижесі 0-ге тең, егер 
s2>s1 
– нәтижесі оң 
болады. 
char*
strcpy
(char*s1, 
const char*s2); 
s1 жолының 
символдарын s2 жолына 
көшіреді. 
char*
strncpy
(char*s1, 
const char*s2, int n); 
s1 жолының n 
символдарын s2 жолына 
көшіреді. 
Жол 
соңы 
алынады 
немесе 
пробелдермен 
толтырылады. 
char*
strcat
(char*s1, 
const char*s2); 
s2 жолын s1 жолына 
тіркейді 
char*
strncat
(char*s1, 
const char*s2); 
s2 жолының алғашқы n 
символдарын s1 жолына 


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 шығарылады. 
 


90 


Достарыңызбен бөлісу:
1   ...   55   56   57   58   59   60   61   62   ...   79




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет