[42seoul] strncmp는 어떤 함수일까??

개발하는 곰댕이·2021년 4월 10일
0

42Seoul

목록 보기
26/45

include

#include <string.h>
int strncmp(const char *s1, const char *s2, size_t n);

매개변수

  • s1
    비교하고싶은 첫 번째 문자열이다.
  • s2
    비교하고싶은 두 번째 문자열이다.
  • n
    비교하고싶은 문자의 수이다.

1. strncmp란??

두 문자열이 다른지, 어디가 더 크거나 작은지 비교하는 함수이고 n을 받아서 검사 할 범위를 정할 수 있다. 그리고 아스키코드값으로 비교를 하기 때문에 대문자 , 소문자도 비교가 된다.

앞 문자열이 더 크다면 양수를, 뒷 문자열이 더 크다면 음수를, 둘이 동일하다면 0을 반환한다.

2. 사용 예제


값이 똑같은 문자열 두 개를 넣고 검사할 수를 넣어주면 해당 수 만큼만 비교해 준다.
두 문자열의 값은 분명 다르지만 size를 4를 주었으니 "1234"까지만 비교를 하고 모두 동일하니 0을 리턴한다.

s1이 더 크다면 양수를 리턴해주고

s2가 더 크다면 음수를 리턴해 준다.

3. 리턴값

두 문자열이 동일하면 0, 다르다면 s1 - s2를 리턴해 준다.
하지만 strncmp의 리턴값이 0, 1, -1로 고정이 되어서 출력이 되기도 한다. 그건 운영체제에 따라서 다른 듯 싶다. Window는 0, 1, -1로 출력을 해 주고 Mac은 해당 아스키코드값의 차로 리턴해 주는 것 같다.

0개의 댓글