Як порівняти два рядки на мові програмування c
У програмних кодах, написаних на мові С, досить часто порівнюються довжини рядків, щоб з`ясувати, який рядок містить більше символів. Це стане в нагоді для сортування даних. Для порівняння рядків необхідна спеціальна функція - не використовуйте != або ==.
кроки
1. Мова програмування С включає дві функції, за допомогою яких можна порівняти довжини рядків. Обидві ці функції включені в бібліотеку .
- strcmp () - ця функція порівнює два рядки і повертає різницю в кількості символів.
- strncmp () - ця функція аналогічна функції strcmp () за винятком того, що порівнюються перші n символів. Вона вважається більш безпечною, оскільки дозволяє уникнути збоїв через переповнення.
2. Почніть програму з необхідних бібліотек. Вам знадобляться бібліотеки і , а також будь-які інші бібліотеки, необхідні для вашої конкретної програми.
#include[[Image: Compare Two Strings in C Programming Step 1 Version 4.jpg | center]] # include
3. Введіть функцію int. Вона повертає ціле число як результат порівняння довжини двох рядків.
[[Image: Compare Two Strings in C Programming Step 2 Version 4.jpg | center]] # include[[Image: Compare Two Strings in C Programming Step 3 Version 3.jpg | center]] # include int main () {}
4. Визначте два рядки, які хочете порівняти. У нашому прикладі можна порівняти два рядки з типом char. Також визначте значення, що повертається як ціле число.
[[Image: Compare Two Strings in C Programming Step 4 Version 4.jpg | center]] # include[[Image: Compare Two Strings in C Programming Step 5 Version 4.jpg | center]] # include int main () {char * str1 = "яблуко"-char * str2 = "апельсин"-int ret-}
5. Введіть функцію порівняння. У нашому прикладі скористаємося функцією strncmp (). У ній потрібно задати кількість вимірюваних символів.
[[Image: Compare Two Strings in C Programming Step 6 Version 4.jpg | center]] # include#include int main () {char * str1 = "яблуко"-char * str2 = "апельсин"-int ret-ret = strncmp (str1, str2, 8) - / * Порівнюються два рядки, довжина яких не перевищує 8 символів * /}
6. Введіть умовний оператор If ... Else. Він необхідний, щоб показати, який рядок довший. функція strncmp () поверне число 0, якщо довжини рядків однакові, позитивне число, якщо str1 довше, і негативне число, якщо str2 довше.
#include#include int main () {char * str1 = "яблуко"-char * str2 = "апельсин"-int ret-ret = strncmp (str1, str2, 8) -if (ret > 0) {printf ("str1 довше") -} else if (ret < 0) {printf ("str2 довше") -} else {printf ("Довжини рядків рівні") -} return (0) -}
попередження
- Пам`ятайте, що якщо довжини рядків рівні, повернеться значення 0. Це може збити вас з пантелику, тому що 0 також є значенням FALSE (Неправда).