Ang paghahambing ng haba ng string ay isang karaniwang pag-andar sa C programming, dahil pinapayagan kang makita kung aling string ang naglalaman ng higit pang mga character. Kapaki-pakinabang ito para sa pag-uuri ng data. Ang paghahambing ng mga string ay nangangailangan ng isang espesyal na pagpapaandar; huwag gamitin! = o ==.
Mga hakbang
Hakbang 1. Mayroong dalawang mga pagpapaandar na nagbibigay-daan sa iyo upang ihambing ang mga string sa C
Ang parehong mga pagpapaandar na ito ay kasama sa silid-aklatan.
- strcmp () - Ang pagpapaandar na ito ay naghahambing ng dalawang mga string at ibabalik ang paghahambing na pagkakaiba sa bilang ng mga character.
- strncmp () - Ito ay kapareho ng strcmp (), maliban sa inihambing nito ang mga unang n character. Ito ay itinuturing na mas ligtas dahil nakakatulong ito na maiwasan ang mga pag-crash mula sa overflow.
Hakbang 2. Simulan ang programa sa iyong mga kinakailangang aklatan
Gugustuhin mo ang parehong at mga aklatan, kasama ang anumang iba pa na maaaring kailangan mo para sa iyong tukoy na programa.
# isama ang # isama
Hakbang 3. Magsimula an
int pagpapaandar
Ito ang pinakamadaling paraan upang malaman ang pagpapaandar na ito, dahil magbabalik ito ng isang integer na inihambing ang haba ng dalawang mga string.
#include #include int main () {}
Hakbang 4. Tukuyin ang dalawang mga string na nais mong ihambing
Para sa halimbawang ito, ihinahambing namin ang dalawang paunang natukoy na mga string ng char. Gusto mo ring tukuyin ang halaga ng pagbalik bilang isang integer.
#include #include int main () {char * str1 = "apple"; char * str2 = "orange"; int ret; }
Hakbang 5. Idagdag ang pagpapaandar ng paghahambing
Ngayon na natukoy mo ang iyong dalawang mga string, maaari mong idagdag ang function ng paghahambing. Gagamitin namin ang strncmp (), kaya kailangan naming matiyak na ang bilang ng mga character na sususukat ay nakatakda sa pagpapaandar.
#include #include int main () {char * str1 = "apple"; char * str2 = "orange"; int ret; ret = strncmp (str1, str2, 6); / * Ihahambing nito ang dalawang mga string hanggang sa 6 na character ang haba * /}
Hakbang 6. Gumamit ng isang
Kung hindi pahayag upang maisagawa ang paghahambing.
Ngayon na mayroon kang pagpapaandar sa lugar, maaari kang gumamit ng isang Kung… Iba pang pahayag upang ipakita kung aling string ang mas mahaba. ibabalik ng strncmp () ang 0 kung ang mga string ay pareho ang haba, isang positibong numero kung ang str1 ay mas malaki, at isang negatibong numero kung ang str2 ay mas malaki.
#include #include int main () {char * str1 = "apple"; char * str2 = "orange"; int ret; ret = strncmp (str1, str2, 6); kung (ret> 0) {printf ("mas mahaba ang str1"); } iba pa kung (ret <0) {printf ("mas mahaba ang str2"); } iba pa {printf ("Ang dalawang mga string ay pantay"); } bumalik (0); }