strncmp는 string.h 헤더 파일에 미리 정의되어 있는 표준 라이브러리 함수로, 두 개의 문자열을 비교하여 어느 문자열이 더 큰지 판별할 때 사용됩니다.
strcmp 함수란? (문자열 비교)
strcmp 함수는 두 문자열 전체를 비교하는 함수입니다. 두 문자열을 왼쪽부터 한 문자씩 비교하다가 처음으로 서로 일치하지 않는 두 문자를 만나면, 해당 문자들의 ASCII 코드 값 차이를 결과로 반환합니다.
구문
int strcmp (string1, string2);
반환값이 0이면 → string1 = string2 (두 문자열이 동일함)
반환값이 양수이면 → string1 > string2 (string1이 더 큼)
반환값이 음수이면 → string1 < string2 (string1이 더 작음)
비교 예시

strncmp 함수란?
strncmp 함수는 두 문자열의 처음 'n'개 문자만 비교하는 함수입니다. strcmp와 달리 비교할 문자 수를 직접 지정할 수 있어, 문자열의 앞부분 일부만 확인하고 싶을 때 특히 유용합니다.
구문
strncmp (string1, string2, n)
예를 들어 strncmp(string1, string2, 4)처럼 작성하면 두 문자열의 첫 4개 문자만 비교하게 됩니다.
예제 프로그램
#include<stdio.h>
#include<string.h>
void main(){
//두 개의 문자열 선언//
char string1[25],string2[25];
int value;
//문자열 1과 문자열 2 입력받기//
printf("Enter String 1: ");
gets(string1);
printf("Enter String 2: ");
gets(string2);
//라이브러리 함수를 이용한 비교//
value = strncmp(string1,string2,4);
//비교 결과에 따른 조건 처리//
if(value==0){
printf("%s is same as %s",string1,string2);
} else if(value>0) {
printf("%s is greater than %s",string1,string2);
} else {
printf("%s is less than %s",string1,string2);
}
}
참고: 위 예제에서 사용된 gets() 함수는 버퍼 오버플로우 보안 위험 때문에 현재는 사용이 권장되지 않습니다. 실무 환경에서는 fgets() 함수를 사용하여 안전하게 문자열을 입력받는 것이 좋습니다.
실행 결과
Enter String 1: Tutorials Enter String 2: Point Tutorials is greater than Point
위 실행 결과에서 strncmp 함수는 두 문자열의 첫 4글자를 비교합니다. 첫 글자인 'T'(ASCII 84)가 'P'(ASCII 80)보다 크기 때문에 "Tutorials is greater than Point"라는 결과가 출력됩니다.