std:: strncmp
|
Определено в заголовочном файле
<cstring>
|
||
|
int
strncmp
(
const
char
*
lhs,
const
char
*
rhs,
std::
size_t
count
)
;
|
||
Сравнивает не более count символов двух возможно нуль-терминированных массивов. Сравнение выполняется лексикографически. Символы, следующие за нулевым символом, не сравниваются.
Знак результата определяется знаком разницы между значениями первой пары символов (оба интерпретируются как unsigned char ), которые различаются в сравниваемых массивах.
Поведение не определено, когда доступ происходит за пределами любого из массивов lhs или rhs . Поведение не определено, когда либо lhs , либо rhs является нулевым указателем.
Содержание |
Параметры
| lhs, rhs | - | указатели на возможно нуль-терминированные массивы для сравнения |
| count | - | максимальное количество символов для сравнения |
Возвращаемое значение
Отрицательное значение, если lhs появляется до rhs в лексикографическом порядке.
Ноль, если lhs и rhs равны, или если count равен нулю.
Положительное значение, если lhs следует после rhs в лексикографическом порядке.
Примечания
Эта функция не зависит от локали, в отличие от std::strcoll и std::strxfrm .
Пример
#include <cstring> #include <iostream> void demo(const char* lhs, const char* rhs, int sz) { const int rc = std::strncmp(lhs, rhs, sz); if (rc < 0) std::cout << "First " << sz << " chars of [" << lhs << "] precede [" << rhs << "]\n"; else if (rc > 0) std::cout << "First " << sz << " chars of [" << lhs << "] follow [" << rhs << "]\n"; else std::cout << "First " << sz << " chars of [" << lhs << "] equal [" << rhs << "]\n"; } int main() { demo("Hello, world!", "Hello, everybody!", 13); demo("Hello, everybody!", "Hello, world!", 13); demo("Hello, everybody!", "Hello, world!", 7); demo("Hello, everybody!" + 12, "Hello, somebody!" + 11, 5); }
Вывод:
First 13 chars of [Hello, world!] follow [Hello, everybody!] First 13 chars of [Hello, everybody!] precede [Hello, world!] First 7 chars of [Hello, everybody!] equal [Hello, world!] First 5 chars of [body!] equal [body!]
Смотрите также
|
сравнивает две строки
(функция) |
|
|
сравнивает определённое количество символов из двух широких строк
(функция) |
|
|
сравнивает два буфера
(функция) |
|
|
сравнивает две строки в соответствии с текущей локалью
(функция) |
|
|
C documentation
для
strncmp
|
|