C/Memory/Memory Compare

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

Compare two buffers: how to use memcmp

<source lang="cpp">

  1. include <stdio.h>
  2. include <string.h>

int main () {

 char str1[256];
 char str2[256];
 int n, len1, len2;
 printf ("Enter a sentence: "); 
 gets(str1);
 printf ("Enter another sentence: "); 
 gets(str2);
 len1=strlen(str1);
 len2=strlen(str2);
 n = memcmp ( str1, str2, len1 > len2 ? len1 : len2 );
 
 if (n>0) 
     printf (""%s" is greater than "%s"", str1, str2);
 else if (n<0) 
     printf (""%s" is less than "%s"",str1,str2);
 else 
     printf (""%s" =  "%s"\n",str1,str2);
 return 0;

}

      </source>


Memory compare

<source lang="cpp">

  1. include <stdio.h>
  2. include <string.h>
  3. include <stdlib.h>

int main(int argc, char *argv[]) {

 int outcome, len, l1, l2;
 if(argc!=3) {
   printf("Incorrect number of arguments.");
   exit(1);
 }
 /* find the length of shortest string */
 l1 = strlen(argv[1]);
 l2 = strlen(argv[2]);
 len = l1 < l2 ? l1:l2;
 outcome = memcmp(argv[1], argv[2], len);
 if(!outcome) printf("Equal");
 else if(outcome<0) printf("First less than second.");
 else printf("First greater than second.");
 return 0;

}

      </source>