본문 바로가기
c언어/내장함수

strcmp와 strncmp

by 감조자림 2022. 12. 29.

둘 다 <string.h>에 있다.

두 문자열을 비교하는 함수이다.

 

strcmp(a, b)라고 할 경우, 문자열 a와 b를 비교한다

1) a < b인 경우 음수 반환 (-1을 반환하는 것으로 보인다.)

2) a > b인 경우 양수 반환 (1을 반환하는 것으로 보인다)

3) a == b 인 경우 0을 반환

여기서 대소관계는 사전순(abc순)으로 앞쪽에 있는 것이 작은 것이다.

a == "abc", b == "abcd"인 경우에는 b가 더 큰 것이다. 이 경우, strcmp(a, b)의 값은 -1이 된다.

 

strncmp는 strcmp와 비슷하다. 위와 같이 문자열을 비교해주는 것 까지는 동일한데 어디까지 비교할 것인지를 정할 수 있다.

따라서 매개변수가 하나가 더 필요하다.

strncmp(a, b, n)이라고 하면 문자열 a와 b를 n번째 자리까지만 검사하는 것이다. 주의할 것은 n번째 인덱스가 아니라 n번째 문자이다. 첫번째 글자까지만 비교하고 싶은 경우 n 자리에 0이 아니라 1을 넣어야 한다.

예를 들어, a == "abc", b == "abcd"인 경우

strncmp(a, b, 3)의 값은 0이 된다. 3번째 자리까지만 비교했기 때문이다.

 

 

'c언어 > 내장함수' 카테고리의 다른 글

C 문자(열) 처리 라이브러리  (0) 2023.01.10
C 문자열 입출력 라이브러리  (0) 2023.01.09
랜덤값(난수)추출  (0) 2022.11.20
백준 11650 (qsort 활용)  (0) 2022.11.08
c언어 내장함수 qsort  (0) 2022.11.08

댓글