Мазмұны
Жол ұзындығын салыстыру Си бағдарламалау тілінде жиі қолданылатын функция, өйткені ол қай жолда көп таңба бар екенін білуге мүмкіндік береді. Бұл деректерді сұрыптауға өте пайдалы. Жолдарды салыстыру арнайы функцияны қажет етеді; сондықтан пайдаланбаңыз: != немесе ==.
Басу үшін
- С-тегі жолдарды салыстыруға мүмкіндік беретін екі функция бар. Екеуі де h.h>кодтар кітапханасы.
- strcmp () - Бұл функция екі жолды салыстырады және таңбалар санының айырмашылығын қайтарады.
- strncmp () - Бұл сондай-ақ қатысты strcmp (), тек бұл бірінші n кейіпкерлерді салыстырады. Бұл қауіпсіз деп саналады, себебі бұл тасып кетудің алдын алуға көмектеседі.
- Бағдарламаны қажетті кітапханалармен іске қосыңыз. Сізде екі кітапхана бар stdio.h> және h.h> басқа кітапханалармен бірге бағдарламаңызға қажет болуы мүмкін.
#include stdio.h> [[Сурет: C бағдарламалауындағы екі жолды салыстырыңыз 1-қадам 4.webp нұсқасы | орталығы]] #include string.h>
- Бірін бастаңыз.intфункциясы. Бұл функцияны үйренудің ең оңай жолы, өйткені ол екі жолдың ұзындығын салыстыратын бүтін санды қайтарады.
[[Сурет: C бағдарламалауындағы екі жолды салыстыру 2-қадам. 4.webp нұсқасы | орталығы]] #include stdio.h> [[Сурет: C бағдарламалауындағы екі жолды салыстыру 3-қадам 3.webp | орталығы]] # жолды қосу. h> int main () {}
- Қандай екі жолды салыстырғыңыз келетінін шешіңіз. Бұл мысалда біз екі деректерді салыстырамыз char жіптер. Сондай-ақ, қайтарылатын мәнді бүтін сан ретінде анықтау керек.
[[Сурет: C бағдарламалаудағы екі жолды салыстырыңыз 4-қадам. 4.webp | орталығы]] #include stdio.h> [[Сурет: C бағдарламалауындағы екі жолды салыстырыңыз 5-қадам. 4.webp | орталығы]] # жолды қосыңыз. h> int main () {char * str1 = «apple»; char * str2 = «қызғылт сары»; int ret;}
- Салыстыру функциясын қосыңыз. Енді сіз екі жолды анықтағаннан кейін, салыстыру функциясын қосуға болады. Біз барамыз strncmp () сондықтан өлшеу үшін таңбалар саны функцияның ішінде орнатылғанына көз жеткізуіміз керек.
[[Сурет: C бағдарламалауындағы екі жолды салыстырыңыз 6-қадам. 4.webp нұсқасы | орталығы]] #include stdio.h> #include string.h> int main () {char * str1 = «apple»; char * str2 = «қызғылт сары»; int ret; ret = strncmp (str1, str2, 11); / * Ұзындығы 11 таңбаға дейінгі екі жолды салыстырады * /}
- Пайдаланыңыз.Егер ... басқасалыстыруды орындау. Енді функцияны жасадық, қолданыңыз Егер ... басқа қай жол ұзын екенін анықтау үшін. strncmp () береді 0 нәтижесінде, егер жолдар бірдей ұзындыққа ие болса, онда str1 ұзын болса, оң сан, ал str2 ұзын болса, теріс сан болады.
#include stdio.h> #include string.h> int main () {char * str1 = «apple»; char * str2 = «қызғылт сары»; int ret; ret = strncmp (str1, str2, 11); егер (ret> 0) {printf («str1 ұзағырақ»); } else if (рет 0) {printf («str2 ұзағырақ»); } else {printf («Екі жол бірдей»); } return (0); }
Ескертулер
- Егер жолдар тең болса, қайтарым мәні 0 болатынын ұмытпаңыз. Бұл түсініксіз болуы мүмкін, өйткені 0 сонымен бірге ЖАЛҒАН мәніне тең.