![ວິທີປຽບທຽບສອງສະຕິງໃນພາສາການຂຽນໂປຣແກມ C - ສະມາຄົມ ວິທີປຽບທຽບສອງສະຕິງໃນພາສາການຂຽນໂປຣແກມ C - ສະມາຄົມ](https://a.vvvvvv.in.ua/society/kak-sravnit-dve-stroki-na-yazike-programmirovaniya-c-6.webp)
ເນື້ອຫາ
ມັນເປັນເລື່ອງ ທຳ ມະດາຢູ່ໃນລະຫັດ C ເພື່ອປຽບທຽບຄວາມຍາວຂອງສະຕິງເພື່ອຊອກຫາວ່າສະຕິງໃດມີຕົວອັກສອນຫຼາຍກວ່າ. ອັນນີ້ເປັນປະໂຫຍດຕໍ່ການຮຽງລໍາດັບຂໍ້ມູນ. ຕ້ອງມີ ໜ້າ ທີ່ພິເສດເພື່ອປຽບທຽບສະຕຣິງ - ຢ່າໃຊ້ != ຫຼື ==.
ຂັ້ນຕອນ
1 ພາສາການຂຽນໂປຣແກມ C ປະກອບມີສອງ ໜ້າ ທີ່ທີ່ເຈົ້າສາມາດໃຊ້ເພື່ອປຽບທຽບຄວາມຍາວຂອງສະຕິງ. ທັງສອງ ໜ້າ ທີ່ເຫຼົ່ານີ້ແມ່ນລວມຢູ່ໃນຫ້ອງສະຸດ string.h>.
- strcmp () - ຟັງຊັນນີ້ປຽບທຽບສອງສະຕຣິງແລະຕອບຄ່າຄວາມແຕກຕ່າງຂອງຈໍານວນຕົວອັກສອນ.
- strncmp () - ໜ້າ ທີ່ນີ້ຄືກັນກັບ strcmp () ຍົກເວັ້ນອັນ ທຳ ອິດ n ຕົວອັກສອນ. ມັນໄດ້ຖືກພິຈາລະນາວ່າມີຄວາມປອດໄພກວ່າເພາະມັນຫຼີກເວັ້ນຄວາມລົ້ມເຫຼວທີ່ລົ້ນ.
2 ເລີ່ມໂຄງການດ້ວຍຫ້ອງສະຸດທີ່ຕ້ອງການ. ເຈົ້າຈະຕ້ອງການຫ້ອງສະຸດ stdio.h> ແລະ string.h>ເຊັ່ນດຽວກັນກັບຫ້ອງສະotherຸດອື່ນ required ທີ່ຕ້ອງການ ສຳ ລັບໂຄງການສະເພາະຂອງເຈົ້າ.
#ລວມເອົາ stdio.h> #ລວມເອົາ string.h>
3 ໃສ່ຟັງຊັນ int. ມັນຕອບຄ່າຕົວເລກເປັນຜົນມາຈາກການປຽບທຽບຄວາມຍາວຂອງສອງສະຕິງ.
#ລວມເອົາ stdio.h> #ລວມເອົາ string.h> int main () {}
4 ລະບຸສອງສະຕຣິງທີ່ເຈົ້າຕ້ອງການປຽບທຽບ. ໃນຕົວຢ່າງຂອງພວກເຮົາ, ໃຫ້ສົມທຽບສອງສະຕິງຊະນິດ ຕົວອັກສອນ... ກຳ ນົດຄ່າຜົນຕອບແທນເປັນ ຈຳ ນວນເຕັມ.
#include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "ສີສົ້ມ"; int ret; }
5 ໃສ່ຟັງຊັນການປຽບທຽບ. ໃນຕົວຢ່າງຂອງພວກເຮົາ, ພວກເຮົາຈະໃຊ້ຟັງຊັນ strncmp ()... ໃນມັນທີ່ທ່ານຕ້ອງການເພື່ອກໍານົດຈໍານວນຂອງລັກສະນະການວັດແທກ.
#include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "ສີສົ້ມ"; int ret; ret = strncmp (str1, str2, 8); / * ປຽບທຽບສອງສະຕຣິງຍາວເຖິງ 8 ຕົວອັກສອນ * /}
6 ໃສ່ ຄຳ ຖະແຫຼງທີ່ມີເງື່ອນໄຂ ຖ້າ... ອັນອື່ນ. ມັນ ຈຳ ເປັນຕ້ອງສະແດງໃຫ້ເຫັນວ່າແຖວໃດຍາວກວ່າ. ໜ້າ ທີ່ strncmp () ຈະຄືນ ຈຳ ນວນ 0ຖ້າຄວາມຍາວຂອງສະຕຣິງຄືກັນ, ຕົວເລກບວກຖ້າ str1 ຍາວກວ່າ, ແລະຕົວເລກລົບຖ້າ str2 ຍາວກວ່າ.
#include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "ສີສົ້ມ"; int ret; ret = strncmp (str1, str2, 8); ຖ້າ (ret> 0) {printf ("str1 ຍາວກວ່າ"); } else if (ret 0) {printf ("str2 ຍາວກວ່າ"); } else {printf ("ຄວາມຍາວເສັ້ນເທົ່າກັນ"); } ຄືນ (0); }
ຄຳ ເຕືອນ
- ຈື່ໄວ້ວ່າຖ້າຄວາມຍາວຂອງສະຕຣິງເທົ່າກັນ, ຄ່າ 0 ຈະຖືກສົ່ງຄືນ. ອັນນີ້ສາມາດເຮັດໃຫ້ເກີດຄວາມສັບສົນເພາະວ່າ 0 ກໍ່ບໍ່ຖືກຕ້ອງຄືກັນ.