strcmp
|
헤더 파일에 정의됨
<string.h>
|
||
|
int
strcmp
(
const
char
*
lhs,
const
char
*
rhs
)
;
|
||
두 개의 널 종료 바이트 문자열을 사전식 순서로 비교합니다.
결과의 부호는 비교 중인 문자열에서 서로 다른 첫 번째 문자 쌍의 값(둘 다 unsigned char 로 해석됨) 간의 차이의 부호와 동일합니다.
동작은 lhs 또는 rhs 가 널 종료 바이트 문자열을 가리키는 포인터가 아닌 경우 정의되지 않습니다.
목차 |
매개변수
| lhs, rhs | - | 비교할 널 종료 바이트 문자열에 대한 포인터 |
반환값
음수 값은 lhs 가 사전식 순서에서 rhs 보다 먼저 나타날 경우를 의미합니다.
lhs 와 rhs 가 동일하게 비교되면 0입니다.
lhs 가 rhs 보다 사전식 순서에서 뒤에 나타나면 양의 값.
참고 사항
이 함수는 strcoll 및 strxfrm 과 달리 로캘에 민감하지 않습니다.
예제
#include <stdio.h> #include <string.h> void demo(const char* lhs, const char* rhs) { const int rc = strcmp(lhs, rhs); const char* rel = rc < 0 ? "precedes" : rc > 0 ? "follows" : "equals"; printf("[%s] %s [%s]\n", lhs, rel, rhs); } int main(void) { const char* string = "Hello World!"; demo(string, "Hello!"); demo(string, "Hello"); demo(string, "Hello there"); demo("Hello, everybody!" + 12, "Hello, somebody!" + 11); }
출력:
[Hello World!] precedes [Hello!] [Hello World!] follows [Hello] [Hello World!] precedes [Hello there] [body!] equals [body!]
참고문헌
- C23 표준 (ISO/IEC 9899:2024):
-
- 7.24.4.2 strcmp 함수 (p: TBD)
- C17 표준 (ISO/IEC 9899:2018):
-
- 7.24.4.2 strcmp 함수 (p: TBD)
- C11 표준 (ISO/IEC 9899:2011):
-
- 7.24.4.2 strcmp 함수 (p: 365-366)
- C99 표준 (ISO/IEC 9899:1999):
-
- 7.21.4.2 strcmp 함수 (p: 328-329)
- C89/C90 표준 (ISO/IEC 9899:1990):
-
- 4.11.4.2 The strcmp function
참고 항목
|
두 문자열의 특정 양의 문자를 비교합니다
(함수) |
|
|
(C95)
|
두 와이드 문자열을 비교합니다
(함수) |
|
두 버퍼를 비교합니다
(함수) |
|
|
현재 로캘에 따라 두 문자열을 비교합니다
(함수) |
|
|
C++ documentation
for
strcmp
|
|