Функция strncmp()
Функция strncmp() - это функция стандартной библиотеки языка Си, которая сравнивает две строки на определенное количество символов.
Синтаксис функции имеет вид:
int strncmp(const char *str1, const char *str2, size_t n);
где:
- str1 и str2 - указатели на сравниваемые строки,
- n - количество символов, которые необходимо сравнить.
Функция возвращает целое число, которое показывает отношение между сравниваемыми строками. Возможны следующие варианты результата:
- значение 0, если строки идентичны,
- целое число меньше 0, если первая строка меньше второй,
- целое число больше 0, если первая строка больше второй.
Рассмотрим примеры использования функции strncmp():
1. Сначала сравним первые n символов двух строк и получим результат сравнения:
int result = strncmp("hello world", "hello dear", 5);
if (result == 0) {
printf("Строки равны");
} else if (result < 0) {
printf("Первая строка меньше");
} else {
printf("Первая строка больше");
}
В данном примере функция strncmp() сравнивает первые 5 символов строк "hello world" и "hello dear". Результат сравнения будет "Первая строка меньше", так как символ "w" в строке "hello world" имеет большее значение, чем символ "d" в строке "hello dear".
2. Теперь рассмотрим пример сравнения двух строк, игнорируя регистр символов:
#include
#include
int main() {
int result = strncasecmp("John Smith", "JOHN SMITHSON", 4);
if (result == 0) {
printf("Строки равны");
} else if (result < 0) {
printf("Первая строка меньше");
} else {
printf("Первая строка больше");
}
return 0;
}
Здесь функция strncasecmp() идентична strncmp(), но игнорирует регистр символов. Результат сравнения будет "Строки равны", так как первые 4 символа - "JOHN" - в обеих строках написаны в верхнем регистре, игнорируя отличие в остальных символах строки.
В целом, функция strncmp() может быть полезна для сравнения двух строк, когда необходимо сравнить только определенное количество символов. Она довольно мощная и может использоваться для различных целей.