Strncmp С++

Возврат массива из функции C++ Программирование и разработка

Строки являются основной частью языка C++, так как он содержит множество встроенных функций для выполнения определенных задач над этими строками. Вы можете создавать подстроки, проверять их размеры и связывать их друг с другом. Сравнение строк является наиболее часто используемой концепцией в C++. Для этого в C++ появилась функция strncmp(). Его довольно легко использовать с операторами if-else в коде. Поэтому мы обсудим его работу в системе Ubuntu 20.04. Давайте начнем с создания нового файла C++ с сенсорной инструкцией в оболочке и откроем его с помощью ключевого слова «nano».

Строки являются основной частью языка

Пример 1

Давайте начнем с первого примера использования функции strncmp(). Код запущен с включением библиотеки C++. Мы включили библиотеки заголовков «iostream» и «string.h» для использования потока ввода-вывода и строковых функций непосредственно в коде. Пространство имен C++ «Std» необходимо добавить в код, чтобы использовать операторы «cin» и «cout». Весь код был выполнен в функции main(). Итак, мы начали его с объявления и инициализации строковых переменных двухсимвольного типа размером 30, т.е. s1 и s3. Оба файла содержат в себе значения строкового типа, т.е. наполовину одинаковые и наполовину разные. Функция strncmp() была вызвана для сравнения двух переменных s1 и s2.

Этот вызов функции использует как переменные s1 и s2 в аргументах, так и количество элементов, которые мы хотим сравнить, то есть 9. Количество одинаковых символов для обеих строк, возвращаемых функцией strncmp(), будет сохранено в целочисленной переменной. «Я». Здесь идет оператор «if-else», чтобы проверить, равно ли возвращаемое количество одинаковых символов нулю, меньше 0 или больше 0. Если число «I» равно нулю, оператор cout отобразит строку, равную выходным данным.. Это означает, что до сих пор не было найдено непревзойденных символов. В противном случае оператор else «cout» покажет, что строки не равны.

Этот вызов функции использует как переменные s

После компиляции этого кода с помощью g++ и выполнения с помощью команды «./a.out» мы получили результат, показывающий, что обе строки равны до первых 9 символов в каждой.

После компиляции этого кода с помощью g++

Давайте изменим количество сравниваемых символов между обеими строками. Итак, мы использовали один и тот же фрагмент кода для C++. Здесь мы обновили функцию strncmp(), заменив ее третий аргумент. Мы заменили 9 на 14, чтобы сравнить сумму первых 14 символов из обеих строк.

Читайте также:  Лучшие игровые движки

Давайте изменим количество сравниваемых символов межд

После компиляции и запуска обновленного кода мы получили показанный ниже вывод. Поскольку строка 1 отличается от строки 2 и далее, ее 10 -й символ показывает, что обе строки не равны после первых 9 символов.

После компиляции и запуска обновленного кода мы получили

Пример 2

Давайте взглянем на другой пример функции strncmp(), работающей с разными типами строк. На этот раз мы рассмотрим две строки одного и того же символьного типа с разными регистрами. Итак, мы начали этот пример с теми же заголовками и пространством имен C++ до реализации функции main(). В методе main() 2 строки символьных типов были инициализированы строковыми значениями; оба одинаковы по символам, но разные по регистрам, т.е. верхний и нижний. Был вызван метод strncmp(), чтобы проверить, равны ли обе строки до первых 5 символов. Оператор «if-else» будет работать соответственно, т.е. равно или не равно. Давайте сохраним и выполним этот код, чтобы увидеть, работает ли обновление правильно или нет.

Давайте взглянем на другой пример функции strncmp

Сначала мы скомпилировали этот код, а затем выполнили его. Взамен мы получили, что строки не равны. Это доказывает, что функция strncmp() возвращает 0 тогда и только тогда, когда обе строки совпадают по символам и регистрам. В противном случае он вернет значение, меньшее или равное 0.

Сначала мы скомпилировали этот код, а затем выполнили его

Поэтому мы обновили строковые значения в коде с теми же регистрами и символами. После инициализации строки мы вызвали метод strncmp() для сравнения строк до последнего символа. Мы добавили здесь вложенный оператор if-else, чтобы проверить более одного условия. Если возвращаемое значение равно 0, он вернет, что строки равны вместе с отображением возвращаемого значения. В противном случае, если возвращаемое значение сравнения больше или меньше 0, оно будет действовать соответствующим образом и отображать это конкретное возвращаемое значение.

Если возвращаемое значение равно 0, он вернет, что строки

После компиляции и выполнения этого обновленного кода мы получили сообщение «Strings are Equal» и возвращаемое значение, то есть 0.

После компиляции и выполнения этого обновленного кода мы получили

Пример 3

Мы закончили со всеми примерами, используя функцию strncmp(), чтобы увидеть, равны ли две строки или нет. На этот раз мы рассмотрим функцию strncmp() немного по-другому. Мы будем использовать одну большую строку и одну маленькую строку в коде. Итак, мы начали наш пример с библиотек заголовков iostream и string.h, используя ключевое слово «#include» для обеих. После добавления пространства имен мы запускаем функцию main() с инициализацией двух строковых переменных.

Читайте также:  Какая CMS лучше: обзор систем управления контентом

Строка s1 содержит более 5 символов, а строка s2 содержит только 5. Функция strncmp() была выполнена с простой функцией, вызываемой передачей обеих переменных в ее аргумент. Количество совпадающих символов равно 5. Функция strncmp() сравнивает обе переменные и возвращает конкретный результат. Так как наша первая строка больше по размеру, чем вторая строка, и не совпадает со второй строкой, то будет выполнена часть «else-if» оператора для «I > 0». В ответ он отобразит, что «S1 больше, чем S2» вместе с возвращенным значением «I» для нескольких несовпадающих символов.

Строка s1 содержит более 5 символов, а строка s2

После запуска этого кода в оболочке мы получили ожидаемый результат, т.е. S1 больше, чем S2. С другой стороны, значение «I» возвращается как «32».

После запуска этого кода в оболочке мы получили

Общий код для этого примера останется таким же, как и в приведенном выше коде. Единственное изменение, которое мы здесь получили, — это обмен строковыми значениями друг с другом. Теперь строка s2 больше по размеру, чем строка s1. В этом случае должен быть выполнен последний оператор else. Давайте запустим этот код сейчас.

Единственное изменение, которое мы здесь получили

После компиляции и выполнения этого кода мы увидели, что остальная часть кода была выполнена после вызова функции strncmp(). Он показывает, что первая строка меньше по размеру, чем другая строка, хотя ни один из символов точно не совпадает.

После компиляции и выполнения этого кода мы увидели, что остальная часть

Заключение

Наконец, мы завершили объяснение функции strncmp() C++ для сравнения двух строк. Мы обсудили метод strncmp() с различными типами строк, т.е. один больше другого по размеру, одинаковые строки и разные строки. До сих пор использовались простые и вложенные операторы «if-else», чтобы наш код проверял различные условия для строк и возвращаемых значений с помощью метода strncmp(). Благодаря простоте наших примеров мы надеемся, что вам будет легко их изучить и реализовать.

Оцените статью
bestprogrammer.ru
Добавить комментарий

Adblock
detector