Загрузить PDF Загрузить PDF

В программных кодах, написанных на языке С, довольно часто сравниваются длины строк, чтобы выяснить, какая строка содержит больше символов. Это пригодится для сортировки данных. Для сравнения строк необходима специальная функция — не используйте != или == .

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

Об этой статье

Эту страницу просматривали 32 018 раз.

Была ли эта статья полезной?

Реклама