memcmp() function in C
0 285
The memcmp() function in C, available in the
It compares the first n bytes of the memory block pointed to by ptr1 with the first n bytes of the memory block pointed to by ptr2.
Syntax of memcmp() function in C:
#include<string.h>int memcmp(const void *ptr1, const void *ptr2, size_t n);
ptr1: Pointer to the first memory block.
ptr2: Pointer to the second memory block.
n: Number of bytes to compare.
Return Value:
Returns an integer less than, equal to, or greater than zero if the first n bytes of ptr1 are found, respectively, to be less than, equal to, or greater than the first n bytes of ptr2.
Implementation:
The memcmp() function typically performs a byte-by-byte comparison of the memory blocks pointed to by ptr1 and ptr2.
It compares each byte in the memory blocks until either a difference is found or n bytes have been compared.
It then returns the result of the comparison based on the byte values encountered.
Example:
Program 1: Basic Usage
// Program for basic usage #include<stdio.h>#include<string.h> int main() { char str1[] = "hello"; char str2[] = "world"; int result = memcmp(str1, str2, 5); // Compare first 5 characters if (result == 0) { printf("The strings are equal.\n"); } else if (result < 0) { printf("The first string is less than the second.\n"); } else { printf("The first string is greater than the second.\n"); } return 0; }
Output:
The first string is less than the second.
Program 2: Using memcmp() for Array Comparison
// program for using memcmp() for array comparison #include<stdio.h>#include<string.h> int main() { int arr1[] = {1, 2, 3}; int arr2[] = {1, 2, 4}; int result = memcmp(arr1, arr2, 3 * sizeof(int)); // Compare entire arrays if (result == 0) { printf("The arrays are equal.\n"); } else if (result < 0) { printf("The first array is less than the second.\n"); } else { printf("The first array is greater than the second.\n"); } return 0; }
Output:
The first array is less than the second.
Program 3: Using memcmp() for Struct Comparison
// program for using memcmp() for struct comparison #include<stdio.h>#include<string.h> struct Point { int x; int y; }; int main() { struct Point p1 = {1, 2}; struct Point p2 = {1, 3}; int result = memcmp(&p1, &p2, sizeof(struct Point)); // Compare entire structs if (result == 0) { printf("The structs are equal.\n"); } else if (result < 0) { printf("The first struct is less than the second.\n"); } else { printf("The first struct is greater than the second.\n"); } return 0; }
Output:
The first struct is less than the second.
These examples showcase the versatility of memcmp() in comparing strings, arrays, and structs, providing insight into its implementation and usage.
Share:
Comments
Waiting for your comments