Загрузить PDF
Загрузить PDF
В программных кодах, написанных на языке С, довольно часто сравниваются длины строк, чтобы выяснить, какая строка содержит больше символов. Это пригодится для сортировки данных. Для сравнения строк необходима специальная функция — не используйте != или == .
Шаги
-
Язык программирования С включает две функции, с помощью которых можно сравнить длины строк. Обе эти функции включены в библиотеку <string.h> .
- strcmp () — эта функция сравнивает две строки и возвращает разницу в количестве символов.
- strncmp () — эта функция аналогична функции strcmp () за исключением того, что сравниваются первые n символов. Она считается более безопасной, поскольку позволяет избежать сбоев из-за переполнений.
-
Начните программу с необходимых библиотек. Вам понадобятся библиотеки <stdio.h> и <string.h> , а также любые другие библиотеки, необходимые для вашей конкретной программы.
#include <stdio.h> #include <string.h>
-
Введите функцию int . Она возвращает целое число как результат сравнения длины двух строк.
#include <stdio.h> #include <string.h> int main () { }
-
Определите две строки, которые хотите сравнить. В нашем примере сравним две строки с типом char . Также определите возвращаемое значение как целое число. [1] X Источник информации
#include <stdio.h> #include <string.h> int main () { char * str1 = "яблоко" ; char * str2 = "апельсин" ; int ret ; }
-
Введите функцию сравнения. В нашем примере воспользуемся функцией strncmp () . В ней нужно задать количество измеряемых символов.
#include <stdio.h> #include <string.h> int main () { char * str1 = "яблоко" ; char * str2 = "апельсин" ; int ret ; ret = strncmp ( str1 , str2 , 8 ); /*Сравниваются две строки, длина которых не превышает 8 символов */ }
-
Введите условный оператор 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 (Ложь).
Реклама
Реклама