std:: strncmp
|
헤더 파일에 정의됨
<cstring>
|
||
|
int
strncmp
(
const
char
*
lhs,
const
char
*
rhs,
std::
size_t
count
)
;
|
||
최대 count 개의 문자를 두 개의 널 종료 가능 배열에서 비교합니다. 비교는 사전식 순서로 수행됩니다. 널 문자 다음에 오는 문자는 비교되지 않습니다.
결과의 부호는 비교 중인 배열에서 서로 다른 첫 번째 문자 쌍의 값(둘 다 unsigned char 로 해석됨) 간의 차이의 부호와 동일합니다.
배열 lhs 또는 rhs 의 끝을 넘어서 접근이 발생할 때의 동작은 정의되지 않습니다. lhs 또는 rhs 가 널 포인터일 때의 동작도 정의되지 않습니다.
목차 |
매개변수
| lhs, rhs | - | 비교할 null 종료 가능성이 있는 배열에 대한 포인터 |
| count | - | 비교할 최대 문자 수 |
반환값
음수 값은 lhs 가 rhs 보다 사전식 순서에서 앞에 나타날 경우입니다.
lhs 와 rhs 가 동일하게 비교되거나, count 가 0인 경우 0입니다.
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
for
strncmp
|
|