Як порівняти два рядки на мові програмування C

Автор: William Ramirez
Дата Створення: 18 Вересень 2021
Дата Оновлення: 1 Липня 2024
Anonim
Строки в с++. Нуль терминатор. Что такое строка в с++. char c++ массив. С++ Для начинающих. Урок #60
Відеоролик: Строки в с++. Нуль терминатор. Что такое строка в с++. char c++ массив. С++ Для начинающих. Урок #60

Зміст

У програмних кодах, написаних на мові С, досить часто порівнюються довжини рядків, щоб з'ясувати, який рядок містить більше символів. Це стане в нагоді для сортування даних. Для порівняння рядків необхідна спеціальна функція - не використовуйте != або ==.

кроки

  1. 1 Мова програмування С включає дві функції, за допомогою яких можна порівняти довжини рядків. Обидві ці функції включені в бібліотеку string.h>.
    • strcmp () - ця функція порівнює два рядки і повертає різницю в кількості символів.
    • strncmp () - ця функція аналогічна функції strcmp () за винятком того, що порівнюються перші n символів. Вона вважається більш безпечною, оскільки дозволяє уникнути збоїв через переповнення.
  2. 2 Почніть програму з необхідних бібліотек. Вам знадобляться бібліотеки stdio.h> і string.h>, А також будь-які інші бібліотеки, необхідні для вашої конкретної програми.

    #include stdio.h> #include string.h>

  3. 3 Введіть функцію int. Вона повертає ціле число як результат порівняння довжини двох рядків.

    #include stdio.h> #include string.h> int main () {}

  4. 4 Визначте два рядки, які хочете порівняти. У нашому прикладі можна порівняти два рядки з типом char. Також визначте значення, що повертається як ціле число.

    #include stdio.h> #include string.h> int main () {char * str1 = "яблуко"; char * str2 = "апельсин"; int ret; }

  5. 5 Введіть функцію порівняння. У нашому прикладі скористаємося функцією strncmp (). У ній потрібно задати кількість вимірюваних символів.

    #include stdio.h> #include string.h> int main () {char * str1 = "яблуко"; char * str2 = "апельсин"; int ret; ret = strncmp (str1, str2, 8); / * Порівнюються два рядки, довжина яких не перевищує 8 символів * /}

  6. 6 Введіть умовний оператор If... Else. Він необхідний, щоб показати, який рядок довший. функція strncmp () поверне число 0, Якщо довжини рядків однакові, позитивне число, якщо str1 довше, і негативне число, якщо str2 довше.

    #include stdio.h> #include string.h> 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 (Неправда).