C/Memory/Memory Compare

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

Compare two buffers: how to use memcmp

#include <stdio.h>
#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;
}


Memory compare

#include <stdio.h>
#include <string.h>
#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;
}