Як порівняти два рядки на мові програмування 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 (Неправда).
    Cхоже