C Tutorial/string.h/strncmp

Материал из C\C++ эксперт
Перейти к: навигация, поиск

strncmp

Item Value Header file string.h Declaration int strncmp(const char *str1, const char *str2, size_t count); Function lexicographically compares not more than count characters and returns an integer as follows: Value Meaning <0 str1 is less than str2 0 str1 is equal to str2 >0 str1 is greater than str2

Using strcmp and strncmp

<source lang="cpp">#include <stdio.h>

  1. include <string.h>

int main() {

  const char *s1 = "asdfasdfasdf"; 
  const char *s2 = "fdafdsafdsa"; 
  const char *s3 = "abced"; 

  printf("%s%s\n%s%s\n%s%s\n\n%s%2d\n%s%2d\n%s%2d\n\n",
         "s1 = ", s1, "s2 = ", s2, "s3 = ", s3,
         "strcmp(s1, s2) = ", strcmp( s1, s2 ),
         "strcmp(s1, s3) = ", strcmp( s1, s3 ),
         "strcmp(s3, s1) = ", strcmp( s3, s1 ) );
  printf("%s%2d\n%s%2d\n%s%2d\n",
         "strncmp(s1, s3, 6) = ", strncmp( s1, s3, 6 ),
         "strncmp(s1, s3, 7) = ", strncmp( s1, s3, 7 ),
         "strncmp(s3, s1, 7) = ", strncmp( s3, s1, 7 ) );
  return 0; 

}</source>

s1 = asdfasdfasdf
s2 = fdafdsafdsa
s3 = abced
strcmp(s1, s2) = -5
strcmp(s1, s3) = 17
strcmp(s3, s1) = -17
strncmp(s1, s3, 6) = 17
strncmp(s1, s3, 7) = 17
strncmp(s3, s1, 7) = -17