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