Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP strncmp() 함수 완벽 정리 – 문자열 처음 n글자 비교하기

PHP의 strncmp() 함수는 두 문자열의 처음 n개 문자만 비교하는 내장 함수입니다. 전체 문자열이 아닌 지정한 길이만큼만 비교하므로, 문자열의 앞부분을 빠르게 확인해야 할 때 유용하게 사용됩니다.

참고: 이 함수는 대소문자를 구분합니다(case-sensitive). 대소문자 구분 없이 비교하려면 strncasecmp() 함수를 사용하세요.

문법(Syntax)

strncmp(str1, str2, len)

매개변수(Parameters)

  • str1 − 비교할 첫 번째 문자열입니다.

  • str2 − 비교할 두 번째 문자열입니다.

  • len − 비교에 사용할 문자의 개수입니다.

반환값(Return)

strncmp() 함수는 비교 결과에 따라 아래와 같은 정숫값을 반환합니다.

  • 0 − 두 문자열이 완전히 같은 경우

  • 0보다 작은 값(< 0) − 첫 번째 문자열(str1)이 두 번째 문자열(str2)보다 작은 경우

  • 0보다 큰 값(> 0) − 첫 번째 문자열(str1)이 두 번째 문자열(str2)보다 큰 경우

문자열의 크고 작음은 각 위치의 문자 ASCII 코드 값을 순서대로 비교하여 결정됩니다.

예제 1

다음은 strncmp() 함수의 기본적인 사용 예시입니다.

<?php
   echo strncmp("Demo text!","DEMO word!",4);
?>

출력 결과

8192

앞의 4글자 "Demo"와 "DEMO"를 비교하면 대소문자가 서로 다르기 때문에 0이 아닌 값이 반환됩니다.

예제 2

이번에는 변수에 담긴 문자열을 비교해 보겠습니다.

<?php
   $str1 = "TomHanks";
   $str2 = "tomhanks";
   print_r(strncmp($str1, $str2, 8));
?>

출력 결과

-32

첫 글자에서 'T'(ASCII 84)와 't'(ASCII 116)의 코드 값 차이로 인해 음수가 반환됩니다. 즉, 대소문자가 한 글자라도 다르면 두 문자열은 같지 않다고 판단됩니다.

마무리

strncmp()대소문자를 구분하며 지정한 길이만큼만 비교한다는两点만 기억하면 됩니다. 관련 함수로는 대소문자를 구분하지 않고 n글자를 비교하는 strncasecmp(), 전체 문자열을 비교하는 strcmp() 등이 있으니 용도에 맞게 활용하세요.