Memcmp в C

Системный вызов Waitpid на C Программирование и разработка

Память является самой важной частью любой программы, когда у вас есть большой объем кода на вашем инструменте. Точно так же язык C очень удобен для сравнения размера памяти более чем одной переменной в коде. Он предлагает функцию «memcmp» для выполнения этой единственной задачи, т. е. сравнения размера памяти двух переменных, строк.

Он проверит, являются ли начальные «n» символов переменной, указанной в качестве первой строки, меньше, эквивалентны или больше, чем начальные «n» символов другой переменной, т. е. строки. Метод memcmp возвращает отрицательное, нулевое или положительное целое число на языке C. Эта статья использовалась для понимания функции memcmp() C в коде. Итак, приступим к работе с терминалом.

Пример 1

Давайте начнем заново с создания файла C в домашней папке Ubuntu 20.04. Используйте для этой цели инструкцию касания Ubuntu. Мы назвали этот файл «memcmp.c». Теперь его нужно открыть в каком-нибудь редакторе Linux, чтобы создать в нем код, т. е. в vim, gnu Nano и текстовом редакторе.

Мы предпочитаем, чтобы редактор nano открывал и создавал в нем код. Обе команды показаны на скриншоте ниже.

Мы предпочитаем, чтобы редактор nano открывал

Давайте начнем наш первый пример кода для C, чтобы использовать функцию memcmp() в коде. Чтобы запустить этот код, мы должны потребовать несколько заголовочных файлов C в начале, чтобы наш код работал. Эти библиотеки включают «stdio.h» и «string.h» с использованием ключевого слова «#include». В целом работа будет производиться в функции main() для сравнения двух строковых значений.

Было объявлено целое число «n». Массивы двухсимвольных типов или строковые значения «A» и «B» размера 10 были инициализированы строковыми значениями. Значения для обоих массивов символов одинаковы по длине, но различны в тексте, т. е. заглавные и строчные буквы одного и того же слова.

Функция memcmp() использовала входящие в нее строки A и B для сравнения до первых 5 букв обеих строк. Возвращаемое значение будет сохранено в переменной «n».

#include <stdio.h>
#include <string.h>
void main () {
int n;
char A[10] = «LINUX»;
char B[10] = «linux»;
n = memcmp(A, B, 5);

А вот и вложенный оператор if-else. Часть оператора «если» проверяет, равно ли значение «n» 0 или нет. Если это так, отобразится, что оба значения равны по размеру памяти, используя функцию «printf».

В части «иначе, если» он проверит, больше ли значение «n» 0 или нет. Если это так, он отобразит, что вторая строка меньше первой, используя метод «printf». В части else будет показано, что первая строка меньше второй строки, если значение «n» меньше 0 с использованием функции «printf». Давайте сохраним наш код, чтобы запустить его, например, Ctrl+S.

   if (n = 0)
printf(«A is equal to B \n«);
else if (> 0)
printf(«B is less than A \n«);
else
printf(«A is less than B \n«);
return 0;
}

Сначала выполните компиляцию кода этого файла с помощью компилятора gcc вместе с именем файла. После этого запустите файл кода с помощью команды «./a.out», показанной на прикрепленном изображении. Это означает, что строка A меньше строки B, т. е. A меньше по размеру памяти.

Сначала выполните компиляцию кода этого файл

Пример 2

Давайте возьмем еще один подобный пример, чтобы увидеть работу функции memcmp в C. На этот раз мы использовали строку заглавных букв как A1 и строку строчных букв как A2, т.е. противоположно первому примеру.

Функция memcmp() использовалась для сравнения размера памяти первых 5 символов между переменными A1 и A2. Возвращаемый результат был сохранен в целое число «n».

Здесь пригодится оператор if-else. Часть «если» будет сравнивать возвращаемое значение «n», больше 0 или нет. Если это так, он отобразит переменную Строка A больше, чем строка A2 по размеру памяти. В противном случае, если «n» меньше 0. Будет выполнена функция else-if printf(), показывающая, что строка A меньше по размеру памяти, чем строка A2.

#include <stdio.h>
#include <string.h>
void main () {
int n;
char A1[10] = «Dreams»;
char A2[10] = «DREAMS»;
n = memcmp(A1, A2, 5);
if (> 0)
printf(«A1 is greater than to A2 \n«);
else if (< 0)
printf(«A1 is less than A2 \n«);

Если оба вышеуказанных условия не выполняются и значение «n» равно «0», метод printf() покажет, что размер памяти A1 и A2 одинаков.

  else
printf(«A1 is equal to A2 \n«);
return 0;
}

Давайте скомпилируем наш код C перед его запуском, т.е. с помощью компилятора gcc с именем файла. После запуска файла мы получили сообщение о том, что A1 больше, чем A2 по размеру памяти.

Давайте скомпилируем наш код C перед его з

Пример 3

Давайте взглянем на последние, но не менее важные примеры в этой статье. В общем коде этого файла есть одно изменение. Мы использовали одно и то же значение для строковых переменных A1 и A2 одинакового размера, то есть 10.

Значения для обеих строк переменных показывают целые заглавные буквы без каких-либо специальных символов и пробелов. Здесь используется та же самая функция memcmp() для сравнения объема памяти A1 и A2. Будут сравниваться первые 5 букв обеих строк. В целом в коде применена та же самая процедура, т. е. оператор «если-иначе» с теми же условиями.

#include <stdio.h>
#include <string.h>
void main () {
int n;
char A1[10] = «DREAMS»;
char A2[10] = «DREAMS»;
n = memcmp(A1, A2, 5);
if (> 0)
printf(«A1 is greater than to A2 \n«);
else if (< 0)
printf(«A1 is less than A2 \n«);
else
printf(«A1 is equal to A2 \n«);
return 0;
}

Скомпилируйте и запустите обновленный код. Взамен мы получили, что строки A1 и A2 равны по размеру памяти.

мен мы получили, что строки A1 и A2 равны по ра

Заключение

Эта статья была посвящена использованию функции memcmp в языке программирования C. Мы скомпилировали все коды с помощью компилятора gcc в Ubuntu 20.04. Мы проделали огромную работу, чтобы сделать это руководство простым для понимания пользователями C.

Читайте также:  Доступ к значениям переменных среды в Python
Оцените статью
bestprogrammer.ru
Добавить комментарий