Сравняването на дължината на низа е често срещана функция в програмирането на C, тъй като ви позволява да видите кой низ съдържа повече знаци. Това е много полезно за сортиране на данни. Сравняването на низове изисква специална функция; не използвайте! = или ==.
Стъпки
Стъпка 1. Има две функции, които ви позволяват да сравнявате низове в C
И двете функции са включени в библиотеката.
- strcmp () - Тази функция сравнява два низа и връща сравнителната разлика в броя на знаците.
- strncmp () - Това е същото като strcmp (), с изключение на това, че сравнява първите n знака. Смята се за по -сигурен, тъй като помага за предотвратяване на преливане на сривове.
Стъпка 2. Стартирайте програмата с необходимите ви библиотеки
Вие ще искате както библиотеките, така и всички други, които може да ви трябват за вашата конкретна програма.
#включи #включи
Стъпка 3. Стартирайте an
int функция.
Това е най -лесният начин да научите тази функция, тъй като тя ще върне цяло число, което сравнява дължината на двата низа.
#include #include int main () {}
Стъпка 4. Определете двата низа, които искате да сравните
За този пример ще сравняваме два предварително дефинирани символни низове. Също така ще искате да дефинирате връщаната стойност като цяло число.
#include #include int main () {char *str1 = "ябълка"; char *str2 = "оранжево"; int ret; }
Стъпка 5. Добавете функцията за сравнение
Сега, когато имате дефинирани двата низа, можете да добавите функцията за сравнение. Ще използваме strncmp (), така че трябва да гарантираме, че броят на знаците, които ще се измерват, е зададен във функцията.
#include #include int main () {char *str1 = "ябълка"; char *str2 = "оранжево"; int ret; ret = strncmp (str1, str2, 6); / *Това ще сравни двата низа с дължина до 6 знака */}
Стъпка 6. Използвайте an
Ако… Иначе изявление за извършване на сравнението.
Сега, когато функцията е на място, можете да използвате оператор If … Else, за да покажете кой низ е по -дълъг. strncmp () ще върне 0, ако низовете са със същата дължина, положително число, ако str1 е по -голямо, и отрицателно число, ако str2 е по -голямо.
#include #include int main () {char *str1 = "ябълка"; char *str2 = "оранжево"; int ret; ret = strncmp (str1, str2, 6); if (ret> 0) {printf ("str1 е по -дълъг"); } else if (ret <0) {printf ("str2 е по -дълъг"); } else {printf ("Двата низа са равни"); } return (0); }