Функция memcmp
Функция memcmp сравнивает два блока памяти
побайтово и возвращает целое число. Она принимает
три параметра: указатель на первый блок памяти,
указатель на второй блок памяти и количество байт
для сравнения. Функция возвращает 0, если
блоки идентичны, отрицательное число, если первый
блок меньше второго, и положительное число, если
первый блок больше второго.
Синтаксис
int memcmp(const void* ptr1, const void* ptr2, size_t count)
Пример
Давайте сравним две одинаковые строки:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
const char* str1 = "abcde";
const char* str2 = "abcde";
int res = memcmp(str1, str2, 5);
cout << res << endl;
return 0;
}
Результат выполнения кода:
0
Пример
Давайте сравним две строки, которые отличаются в третьем символе:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
const char* str1 = "abcde";
const char* str2 = "abxde";
int res = memcmp(str1, str2, 5);
cout << res << endl;
return 0;
}
Результат выполнения кода:
-1
Функция вернула отрицательное число, так как
символ 'c' в первой строке меньше символа
'x' во второй.
Пример
Давайте сравним только первые три байта двух строк, которые отличаются в четвёртом символе:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
const char* str1 = "abcde";
const char* str2 = "abcdx";
int res = memcmp(str1, str2, 3);
cout << res << endl;
return 0;
}
Результат выполнения кода:
0
Функция вернула 0, так как первые три
байта строк идентичны, а отличие находится за
пределами сравниваемого диапазона.