GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Python Technologies
  • Databases
  • Computer Programming
  • Web Development
  • Java Technologies
  • Computer Science
  • Mobile Development
  • Big Data & Analytics
  • Microsoft Technologies
  • DevOps
  • Latest Technologies
  • Machine Learning
  • Digital Marketing
  • Software Quality

This view

  • Original page
  • New address

GeezerVison is showing www.tutorialspoint.com — C++ ctring memcmp() Function

The C++ Standard Library
  • The C Standard Library
  • C++ Library - Home
  • C++ Library - <fstream>
  • C++ Library - <iomanip>
  • C++ Library - <ios>
  • C++ Library - <iosfwd>
  • C++ Library - <iostream>
  • C++ Library - <istream>
  • C++ Library - <ostream>
  • C++ Library - <sstream>
  • C++ Library - <streambuf>
  • C++ Library - <atomic>
  • C++ Library - <complex>
  • C++ Library - <exception>
  • C++ Library - <functional>
  • C++ Library - <limits>
  • C++ Library - <locale>
  • C++ Library - <memory>
  • C++ Library - <new>
  • C++ Library - <numeric>
  • C++ Library - <regex>
  • C++ Library - <stdexcept>
  • C++ Library - <string>
  • C++ Library - <thread>
  • C++ Library - <tuple>
  • C++ Library - <typeinfo>
  • C++ Library - <utility>
  • C++ Library - <valarray>
  • The C++ STL Library
  • C++ Library - <array>
  • C++ Library - <bitset>
  • C++ Library - <deque>
  • C++ Library - <forward_list>
  • C++ Library - <list>
  • C++ Library - <map>
  • C++ Library - <multimap>
  • C++ Library - <queue>
  • C++ Library - <priority_queue>
  • C++ Library - <set>
  • C++ Library - <multiset >
  • C++ Library - <stack>
  • C++ Library - <unordered_map>
  • C++ Library - <unordered_set>
  • C++ Library - <unordered_multiset>
  • C++ Library - <vector>
  • C++ Library - <algorithm>
  • C++ Library - <iterator>
  • The C++ Advanced Library
  • C++ Library - <any>
  • C++ Library - <barrier>
  • C++ Library - <bit>
  • C++ Library - <chrono>
  • C++ Library - <cinttypes>
  • C++ Library - <clocale>
  • C++ Library - <condition_variable>
  • C++ Library - <coroutine>
  • C++ Library - <cstdlib>
  • C++ Library - <cstring>
  • C++ Library - <cuchar>
  • C++ Library - <charconv>
  • C++ Library - <cfenv>
  • C++ Library - <cmath>
  • C++ Library - <ccomplex>
  • C++ Library - <expected>
  • C++ Library - <format>
  • C++ Library - <future>
  • C++ Library - <flat_set>
  • C++ Library - <flat_map>
  • C++ Library - <filesystem>
  • C++ Library - <generator>
  • C++ Library - <initializer_list>
  • C++ Library - <latch>
  • C++ Library - <memory_resource>
  • C++ Library - <mutex>
  • C++ Library - <mdspan>
  • C++ Library - <optional>
  • C++ Library - <print>
  • C++ Library - <ratio>
  • C++ Library - <scoped_allocator>
  • C++ Library - <semaphore>
  • C++ Library - <source_location>
  • C++ Library - <span>
  • C++ Library - <spanstream>
  • C++ Library - <stacktrace>
  • C++ Library - <stop_token>
  • C++ Library - <syncstream>
  • C++ Library - <system_error>
  • C++ Library - <string_view>
  • C++ Library - <stdatomic>
  • C++ Library - <variant>
  • C++ STL Library Cheat Sheet
  • C++ STL - Cheat Sheet
  • C++ Programming Resources
  • C++ Programming Tutorial
  • C++ Useful Resources
  • C++ Discussion
Selected Reading
  • UPSC IAS Exams Notes
  • Developer's Best Practices
  • Questions and Answers
  • Online Resume Builder
  • HR Interview Questions
  • Computer Glossary
  • Who is Who

C++ ctring memcmp() Function



Previous
Quiz
Next

The C++ ctring memcmp() function is used to compare two memory buffers. A Memory buffer is a place where temporary data is stored, and it is used to store data temporarily. It compares the first n bytes of the memory areas pointed to by s1 and s2.

If memory overlaps, the results are undefined and results in a segmentation fault.

Syntax

int memcmp(const void *s1, const void *s2, size_t n);

Parameters

Following are the parameters of this function −

  • s1: This is the pointer to the first memory block.
  • s2: This is the pointer to the second memory block.
  • n: This is the number of bytes to be compared.

Return Value

The memcmp() function returns zero if the two memory blocks are equal, a value less than zero if the first byte that does not match in both memory blocks has a lower value in s1 than in s2, and a value greater than zero if the first byte that does not match in both memory blocks has a greater value in s1 than in s2.

Example 1

Following is an example to show the usage of memcmp() function.

In this example, let's compare two memory blocks str1 and str2 using memcmp() function. For this, we will first initialize the memory blocks and then compare them using memcmp() function.

#include <iostream>
#include <cstring>
using namespace std;

int main() {
   char str1[15];
   char str2[15];
   int ret;

   strcpy(str1, "abcdef");
   strcpy(str2, "ABCDEF");

   ret = memcmp(str1, str2, 5);

   if(ret > 0) {
      cout << "str1 is greater than str2"<<endl;
   } else if(ret < 0) {
      cout << "str1 is less than str2"<<endl;
   } else {
      cout << "str1 is equal to str2"<<endl;
   }

   return 0;
}

Output

Following is the output of the above C++ program:

str1 is less than str2

Example 2

Let's start with declaring two memory blocks str1 and str2 and then compare them using memcmp() function.

#include <iostream>
#include <cstring>
using namespace std;

int main() {
   char str1[15];
   char str2[15];
   int ret;

   strcpy(str1, "abcdef");
   strcpy(str2, "ABCDEF");

   ret = memcmp(str1, str2, 5);

   if(ret > 0) {
      cout << "str1 is greater than str2"<<endl;
   } else if(ret < 0) {
      cout << "str1 is less than str2"<<endl;
   } else {
      cout << "str1 is equal to str2"<<endl;
   }

   // Exception case
   char str3[15];
   strcpy(str3, "abcdef");
   ret = memcmp(str3, str3+2, 5);

   if(ret > 0) {
      cout << "str3 is greater than str3+2"<<endl;
   } else if(ret < 0) {
      cout << "str3 is less than str3+2"<<endl;
   } else {
      cout << "str3 is equal to str3+2"<<endl;
   }

   return 0;
}

Output

Following is the output of the above C++ program:

str1 is less than str2
str3 is less than str3+2
Tutorix - AI Tutor
Previous Quiz Next
Advertisements
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.