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

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

Кроки

  1. Мова програмування С включає дві функції, за допомогою яких можна порівняти довжини рядків. обидві ці функції включені в бібліотеку &#LT;string.h&#gt;.
    • strcmp () — ця функція порівнює два рядки і повертає різницю в кількості символів.
    • strncmp () — ця функція аналогічна функції STRCMP () за винятком того, що порівнюються перші n символів. Вона вважається більш безпечною, оскільки дозволяє уникнути збоїв через переповнень.
  2. Почніть програму з необхідних бібліотек. вам знадобляться бібліотеки &#lt;stdio.h &#gt; і &#LT; string.h&#gt;, а також будь-які інші бібліотеки, необхідні для вашої конкретної програми.
    #include &#lt;stdio.h&#gt;[[Image:Compare Two Strings in C Programming Step 1 Version 4.jpg|center]]
    #include &#lt;string.h&#gt;
    
  3. Введіть функціюint. вона повертає ціле число як результат порівняння довжини двох рядків.
    [[Image:Compare Two Strings In C Programming Step 2 Version 4.Jpg|Center]]
    #include &#lt;stdio.h&#gt;[[Image:Compare Two Strings in C Programming Step 3 Version 3.jpg|center]]
    #include &#lt;string.h&#gt;
    
    Int Main ()
    
    {
    
    }
    
  4. Визначте два рядки, які хочете порівняти. у нашому прикладі порівняємо два рядки з типом char. Також визначте значення, що повертається, як ціле число. [1]
    [[Image:Compare Two Strings In C Programming Step 4 Version 4.Jpg|Center]]
    #include &#lt;stdio.h&#gt;[[Image:Compare Two Strings in C Programming Step 5 Version 4.jpg|center]]
    #include &#lt;string.h&#gt;
    
    Int Main ()
    {
      Char *Str1 = "яблуко";
      Char *Str2 = "апельсин";
      Int Ret;
    }
    
  5. Введіть функцію порівняння. у нашому прикладі скористаємося функцією strncmp (). У ній потрібно задати кількість вимірюваних символів.
    [[Image:Compare Two Strings In C Programming Step 6 Version 4.Jpg|Center]]
    #include &#lt;stdio.h&#gt;
    #include &#lt;string.h&#gt;
    
    Int Main ()
    {
      Char *Str1 = "яблуко";
      Char *Str2 = " апельсин";
      Int Ret;
    
      Ret = Strncmp(Str1, Str2, 8);
    
      /*порівнюються два рядки, довжина яких не перевищує 8 символів * /
    }
    
  6. Введіть умовний операторIf ... Else. Він необхідний, щоб показати, який рядок довший. Функція strncmp () поверне число 0, якщо довжини рядків однакові, позитивне число, якщо str1 довше, і негативне число, якщо str2 довше.
    #include &#lt;stdio.h&#gt;
    #include &#lt;string.h&#gt;
    
    Int Main ()
    {
      Char *Str1 = "яблуко";
      Char *Str2 = "апельсин";
      Int Ret;
    
      Ret = Strncmp(Str1, Str2, 8);
    
      If(Ret &#gt; 0)
      {
        Printf("str1 довше");
      }
      Else If(Ret &#lt; 0)
      {
        Printf("str2 довше");
      }
      Else
      {
        Printf("довжини рядків рівні");
      }
    
      Return(0);
    }
    

Попередження

  • Пам'ятайте, що якщо довжини рядків рівні, повернеться значення 0. Це може збити вас з пантелику, тому що 0 також є значенням FALSE (брехня).

Ще почитати: